diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 199f3d3..55d145a 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -4628,11 +4628,13 @@
         /*
          * Main check: verify certificate
          */
+#if defined(MBEDTLS_SSL_PREVERIFY_CB)
         if( ssl->conf->f_pre_vrfy != NULL )
         {
             ssl->conf->f_pre_vrfy( ssl->conf->p_pre_vrfy,
                                    ssl->session_negotiate->peer_cert );
         }
+#endif
         ret = mbedtls_x509_crt_verify_with_profile(
                                 ssl->session_negotiate->peer_cert,
                                 ca_chain, ca_crl,
@@ -5882,7 +5884,9 @@
     conf->f_vrfy      = f_vrfy;
     conf->p_vrfy      = p_vrfy;
 }
+#endif /* MBEDTLS_X509_CRT_PARSE_C */
 
+#if defined(MBEDTLS_SSL_PREVERIFY_CB)
 void mbedtls_ssl_conf_pre_verify(mbedtls_ssl_config *conf,
                              void(*f_pre_vrfy)(void *, mbedtls_x509_crt *),
                              void *p_pre_vrfy)
@@ -5890,7 +5894,7 @@
   conf->f_pre_vrfy = f_pre_vrfy;
   conf->p_pre_vrfy = p_pre_vrfy;
 }
-#endif /* MBEDTLS_X509_CRT_PARSE_C */
+#endif /* MBEDTLS_SSL_PREVERIFY_CB */
 
 void mbedtls_ssl_conf_rng( mbedtls_ssl_config *conf,
                   int (*f_rng)(void *, unsigned char *, size_t),
