diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index 17611d6..f47d34e 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -888,7 +888,11 @@
 #if defined(MBEDTLS_SSL_RENEGOTIATION)
         ssl->renego_status != MBEDTLS_SSL_INITIAL_HANDSHAKE ||
 #endif
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
         ssl->handshake->resume == 0 )
+#else /* MBEDTLS_SSL_SESSION_RESUMPTION */
+        0 )
+#endif
     {
         n = 0;
     }
@@ -1795,6 +1799,7 @@
     MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, session id len.: %d", n ) );
     MBEDTLS_SSL_DEBUG_BUF( 3,   "server hello, session id", buf + 35, n );
 
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     /*
      * Check if the session can be resumed
      */
@@ -1818,6 +1823,7 @@
         memcpy( ssl->session_negotiate->id, buf + 35, n );
     }
     else
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
     {
         ssl->state = MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC;
 
@@ -1830,8 +1836,10 @@
         }
     }
 
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s session has been resumed",
                    ssl->handshake->resume ? "a" : "no" ) );
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
 
     MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, chosen ciphersuite: %04x", i ) );
     MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, compress alg.: %d", buf[37 + n] ) );
diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 55a5976..a76ce16 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -2656,7 +2656,9 @@
     }
 #endif /* MBEDTLS_SSL_SESSION_CACHE */
 
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     if( ssl->handshake->resume == 0 )
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
     {
         /*
          * New session, create a new session id,
@@ -2683,6 +2685,7 @@
                 return( ret );
         }
     }
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     else
     {
         /*
@@ -2697,6 +2700,7 @@
             return( ret );
         }
     }
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
 
     /*
      *    38  .  38     session id length
@@ -2712,8 +2716,10 @@
 
     MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, session id len.: %d", n ) );
     MBEDTLS_SSL_DEBUG_BUF( 3,   "server hello, session id", buf + 39, n );
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     MBEDTLS_SSL_DEBUG_MSG( 3, ( "%s session has been resumed",
                    ssl->handshake->resume ? "a" : "no" ) );
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
 
     *p++ = (unsigned char)( ssl->session_negotiate->ciphersuite >> 8 );
     *p++ = (unsigned char)( ssl->session_negotiate->ciphersuite      );
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 10232bb..420eba2 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -1263,11 +1263,13 @@
     (void) ssl;
 #endif
 
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     if( handshake->resume != 0 )
     {
         MBEDTLS_SSL_DEBUG_MSG( 3, ( "no premaster (session resumed)" ) );
         return( 0 );
     }
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
 
     MBEDTLS_SSL_DEBUG_BUF( 3, "premaster secret", handshake->premaster,
                                                   handshake->pmslen );
@@ -7364,6 +7366,7 @@
     ssl->out_msgtype = MBEDTLS_SSL_MSG_HANDSHAKE;
     ssl->out_msg[0]  = MBEDTLS_SSL_HS_FINISHED;
 
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     /*
      * In case of session resuming, invert the client and server
      * ChangeCipherSpec messages order.
@@ -7380,6 +7383,7 @@
 #endif
     }
     else
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
         ssl->state++;
 
     /*
@@ -7520,6 +7524,7 @@
     memcpy( ssl->peer_verify_data, buf, hash_len );
 #endif
 
+#if defined(MBEDTLS_SSL_SESSION_RESUMPTION)
     if( ssl->handshake->resume != 0 )
     {
 #if defined(MBEDTLS_SSL_CLI_C)
@@ -7532,6 +7537,7 @@
 #endif
     }
     else
+#endif /* MBEDTLS_SSL_SESSION_RESUMPTION */
         ssl->state++;
 
 #if defined(MBEDTLS_SSL_PROTO_DTLS)
