diff --git a/include/mbedtls/ssl.h b/include/mbedtls/ssl.h
index 4d0d6a1..fa5ae2f 100644
--- a/include/mbedtls/ssl.h
+++ b/include/mbedtls/ssl.h
@@ -535,6 +535,16 @@
  */
 typedef int mbedtls_ssl_get_timer_t( void * ctx );
 
+#if defined(MBEDTLS_X509_CRT_PARSE_C)
+/**
+ * \brief          Callback type: receive notification before X.509 chain
+ *                 building
+ *
+ * \param ctx      Context pointer
+ * \param crt      X.509 certificate pointer
+ */
+typedef void mbedtls_ssl_pre_verify_t( void *ctx, mbedtls_x509_crt *crt );
+#endif
 
 /* Defined below */
 typedef struct mbedtls_ssl_session mbedtls_ssl_session;
@@ -624,17 +634,15 @@
 #endif
 
 #if defined(MBEDTLS_X509_CRT_PARSE_C)
+    /** Callback to receive notification before X.509 chain building        */
+    mbedtls_ssl_pre_verify_t *f_pre_vrfy;
+    void *p_pre_vrfy;               /*!< context for pre-verify calllback   */
+
     /** Callback to customize X.509 certificate chain verification          */
     int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *);
     void *p_vrfy;                   /*!< context for X.509 verify calllback */
 #endif
 
-#if defined(MBEDTLS_SSL_PREVERIFY_CB)
-    /** Callback to receive notification before X.509 chain building        */
-    void (*f_pre_vrfy)(void *, mbedtls_x509_crt *);
-    void *p_pre_vrfy;               /*!< context for pre-verify calllback   */
-#endif
-
 #if defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED)
     /** Callback to retrieve PSK key from identity                          */
     int (*f_psk)(void *, mbedtls_ssl_context *, const unsigned char *, size_t);
@@ -1082,9 +1090,7 @@
 void mbedtls_ssl_conf_verify( mbedtls_ssl_config *conf,
                      int (*f_vrfy)(void *, mbedtls_x509_crt *, int, uint32_t *),
                      void *p_vrfy );
-#endif /* MBEDTLS_X509_CRT_PARSE_C */
 
-#if defined(MBEDTLS_SSL_PREVERIFY_CB)
 /**
  * \brief          Set the pre-verification callback (Optional).
  *
@@ -1096,10 +1102,10 @@
  * \param f_pre_vrfy pre-verification function
  * \param p_pre_vrfy pre-verification parameter
  */
-void mbedtls_ssl_conf_pre_verify(mbedtls_ssl_config *conf,
-                                 void(*f_pre_vrfy)(void *, mbedtls_x509_crt *),
-                                 void *p_pre_vrfy);
-#endif /* MBEDTLS_SSL_PREVERIFY_CB */
+void mbedtls_ssl_conf_pre_verify( mbedtls_ssl_config *conf,
+                         mbedtls_ssl_pre_verify_t *f_pre_vrfy,
+                         void *p_pre_vrfy);
+#endif /* MBEDTLS_X509_CRT_PARSE_C */
 
 /**
  * \brief          Set the random number generator callback
