diff --git a/include/mbedtls/ssl_internal.h b/include/mbedtls/ssl_internal.h
index 0dbf60e..a4d4eea 100644
--- a/include/mbedtls/ssl_internal.h
+++ b/include/mbedtls/ssl_internal.h
@@ -501,9 +501,9 @@
                     const unsigned char *, size_t,
                     unsigned char *, size_t);
 
-#if !defined(MBEDTLS_SSL_SINGLE_CIPHERSUITE)
+#if !defined(MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE)
     mbedtls_ssl_ciphersuite_handle_t ciphersuite_info;
-#endif /* !MBEDTLS_SSL_SINGLE_CIPHERSUITE */
+#endif /* !MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE */
 
     size_t pmslen;                      /*!<  premaster length        */
 
@@ -558,20 +558,20 @@
 }
 #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */
 
-#if !defined(MBEDTLS_SSL_SINGLE_CIPHERSUITE)
+#if !defined(MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE)
 static inline mbedtls_ssl_ciphersuite_handle_t mbedtls_ssl_handshake_get_ciphersuite(
     mbedtls_ssl_handshake_params const *handshake )
 {
     return( handshake->ciphersuite_info );
 }
-#else /* !MBEDTLS_SSL_SINGLE_CIPHERSUITE */
+#else /* !MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE */
 static inline mbedtls_ssl_ciphersuite_handle_t mbedtls_ssl_handshake_get_ciphersuite(
     mbedtls_ssl_handshake_params const *handshake )
 {
     ((void) handshake);
     return( MBEDTLS_SSL_CIPHERSUITE_UNIQUE_VALID_HANDLE );
 }
-#endif /* MBEDTLS_SSL_SINGLE_CIPHERSUITE */
+#endif /* MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE */
 
 typedef struct mbedtls_ssl_hs_buffer mbedtls_ssl_hs_buffer;
 
@@ -1454,7 +1454,7 @@
  * instantiation in case a single ciphersuite is enabled at
  * compile-time.
  */
-#if !defined(MBEDTLS_SSL_SINGLE_CIPHERSUITE)
+#if !defined(MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE)
 
 #define MBEDTLS_SSL_BEGIN_FOR_EACH_CIPHERSUITE( ssl, ver, info ) \
     {                                                            \
@@ -1472,7 +1472,7 @@
         }                                     \
     }
 
-#else /* !MBEDTLS_SSL_SINGLE_CIPHERSUITE */
+#else /* !MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE */
 
 #define MBEDTLS_SSL_BEGIN_FOR_EACH_CIPHERSUITE( ssl, ver, info )             \
     {                                                                        \
@@ -1482,6 +1482,6 @@
 #define MBEDTLS_SSL_END_FOR_EACH_CIPHERSUITE    \
     }
 
-#endif /* MBEDTLS_SSL_SINGLE_CIPHERSUITE */
+#endif /* MBEDTLS_SSL_CONF_SINGLE_CIPHERSUITE */
 
 #endif /* ssl_internal.h */
