diff --git a/library/ssl_cli.c b/library/ssl_cli.c
index ba6a806..cc6c86d 100644
--- a/library/ssl_cli.c
+++ b/library/ssl_cli.c
@@ -4229,10 +4229,10 @@
 int mbedtls_ssl_handshake_client_step( mbedtls_ssl_context *ssl )
 {
     int ret = MBEDTLS_ERR_PLATFORM_FAULT_DETECTED;
-#if defined(MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION)
+#if defined(MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION)
     void *rs_ctx = NULL;
     int authmode;
-#endif /* MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION */
+#endif /* MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION */
 
     if( ssl->state == MBEDTLS_SSL_HANDSHAKE_OVER || ssl->handshake == NULL )
         return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA );
@@ -4339,7 +4339,7 @@
 
        case MBEDTLS_SSL_CLIENT_FINISHED:
 
-#if defined(MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION)
+#if defined(MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION)
 #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
            authmode = ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET
                        ? ssl->handshake->sni_authmode
@@ -4354,7 +4354,7 @@
                                    ssl->session_negotiate->peer_cert, rs_ctx );
            if( ret != 0 )
                break;
-#endif /* MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION */
+#endif /* MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION */
 
            ret = mbedtls_ssl_write_finished( ssl );
            break;
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 75ec821..6415281 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -8022,7 +8022,7 @@
 }
 
 
-#if defined(MBEDTLS_KEY_EXCHANGE__WITH_CERT__ENABLED) && defined(MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION)
+#if defined(MBEDTLS_KEY_EXCHANGE__WITH_CERT__ENABLED) && defined(MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION)
 /* mbedtls_ssl_parse_delayed_certificate_verify() defines a wrapper around ssl_parse_certificate_verify
  * to call it in ssl_cli.c rather than purely internal to ssl_tls.c.
  */
@@ -8038,7 +8038,7 @@
                                           rs_ctx ) );
 
 }
-#endif /* MBEDTLS_KEY_EXCHANGE__WITH_CERT__ENABLED && MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION */
+#endif /* MBEDTLS_KEY_EXCHANGE__WITH_CERT__ENABLED && MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION */
 
 
 #if !defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
@@ -8181,13 +8181,13 @@
         rs_ctx = &ssl->handshake->ecrs_ctx;
 #endif
 
-#if defined(MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION)
+#if defined(MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION)
     if (mbedtls_ssl_conf_get_endpoint( ssl->conf ) == MBEDTLS_SSL_IS_CLIENT )
     {
         MBEDTLS_SSL_DEBUG_MSG( 3, ( "delay server certificate verification" ) );
     }
     else
-#endif /* MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION */
+#endif /* MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION */
     {
         ret = ssl_parse_certificate_verify( ssl, authmode,
                                             chain, rs_ctx );
diff --git a/library/version_features.c b/library/version_features.c
index 0ada3c6..c270c3a 100644
--- a/library/version_features.c
+++ b/library/version_features.c
@@ -33,9 +33,9 @@
 
 static const char *features[] = {
 #if defined(MBEDTLS_VERSION_FEATURES)
-#if defined(MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION)
-    "MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION",
-#endif /* MBEDTLS_DELAYED_SERVER_CERT_VERIFICATION */
+#if defined(MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION)
+    "MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION",
+#endif /* MBEDTLS_SSL_DELAYED_SERVER_CERT_VERIFICATION */
 #if defined(MBEDTLS_HAVE_ASM)
     "MBEDTLS_HAVE_ASM",
 #endif /* MBEDTLS_HAVE_ASM */
