diff --git a/library/ssl_srv.c b/library/ssl_srv.c
index 6621faa..dc80ed0 100644
--- a/library/ssl_srv.c
+++ b/library/ssl_srv.c
@@ -1345,7 +1345,12 @@
     msg_len = ( ssl->in_len[0] << 8 ) | ssl->in_len[1];
 
 #if defined(POLARSSL_SSL_RENEGOTIATION)
-    if( ssl->renegotiation == SSL_INITIAL_HANDSHAKE )
+    if( ssl->renegotiation != SSL_INITIAL_HANDSHAKE )
+    {
+        /* Set by ssl_read_record() */
+        msg_len = ssl->in_hslen;
+    }
+    else
 #endif
     {
         if( msg_len > SSL_MAX_CONTENT_LEN )
@@ -1368,11 +1373,6 @@
 #endif
             ssl->in_left = 0;
     }
-    else
-    {
-        /* Set by ssl_read_record() */
-        msg_len = ssl->in_hslen;
-    }
 
     buf = ssl->in_msg;
 
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 43f7f14..e25e565 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -2079,7 +2079,7 @@
 }
 #endif /* POLARSSL_ZLIB_SUPPORT */
 
-#if defined(POLARSSL_SSL_SRV_C)
+#if defined(POLARSSL_SSL_SRV_C) && defined(POLARSSL_SSL_RENEGOTIATION)
 static int ssl_write_hello_request( ssl_context *ssl );
 
 #if defined(POLARSSL_SSL_PROTO_DTLS)
@@ -2108,7 +2108,7 @@
     return( ssl_write_hello_request( ssl ) );
 }
 #endif
-#endif
+#endif /* POLARSSL_SSL_SRV_C && POLARSSL_SSL_RENEGOTIATION */
 
 /*
  * Fill the input message buffer by appending data to it.
@@ -2258,7 +2258,7 @@
 
                 return( POLARSSL_ERR_NET_WANT_READ );
             }
-#if defined(POLARSSL_SSL_SRV_C)
+#if defined(POLARSSL_SSL_SRV_C) && defined(POLARSSL_SSL_RENEGOTIATION)
             else if( ssl->endpoint == SSL_IS_SERVER &&
                      ssl->renegotiation == SSL_RENEGOTIATION_PENDING )
             {
@@ -2270,7 +2270,7 @@
 
                 return( POLARSSL_ERR_NET_WANT_READ );
             }
-#endif /* POLARSSL_SSL_SRV_C */
+#endif /* POLARSSL_SSL_SRV_C && POLARSSL_SSL_RENEGOTIATION */
         }
 
         if( ret < 0 )
@@ -6274,7 +6274,7 @@
         /* If we requested renego but received AppData, resend HelloRequest.
          * Do it now, after setting in_offt, to avoid taking this branch
          * again if ssl_write_hello_request() returns WANT_WRITE */
-#if defined(POLARSSL_SSL_SRV_C)
+#if defined(POLARSSL_SSL_SRV_C) && defined(POLARSSL_SSL_RENEGOTIATION)
         if( ssl->endpoint == SSL_IS_SERVER &&
             ssl->renegotiation == SSL_RENEGOTIATION_PENDING )
         {
@@ -6284,7 +6284,7 @@
                 return( ret );
             }
         }
-#endif /* POLARSSL_SSL_SRV_C */
+#endif /* POLARSSL_SSL_SRV_C && POLARSSL_SSL_RENEGOTIATION */
 #endif
     }
 
