diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 696eb85..6b08445 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -2088,21 +2088,9 @@
 
     if( !mbedtls_ssl_ciphersuite_uses_srv_cert( ciphersuite_info ) )
     {
-#if defined(MBEDTLS_SSL_DTLS_SRTP)
-        /* check if we have a chosen srtp protection profile */
-        if( ssl->dtls_srtp_info.chosen_dtls_srtp_profile != MBEDTLS_SRTP_UNSET_PROFILE )
-        {
-            return( MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE );
-        }
-        else
-        {
-#endif /* MBEDTLS_SSL_DTLS_SRTP */
-            MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate" ) );
-            ssl->state++;
-            return( 0 );
-#if defined(MBEDTLS_SSL_DTLS_SRTP)
-        }
-#endif
+        MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= skip write certificate" ) );
+        ssl->state++;
+        return( 0 );
     }
 
 #if defined(MBEDTLS_SSL_CLI_C)
@@ -2727,22 +2715,9 @@
 #if defined(MBEDTLS_SSL_SRV_C) && defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
     const int authmode = ssl->handshake->sni_authmode != MBEDTLS_SSL_VERIFY_UNSET
                        ? ssl->handshake->sni_authmode
-#if defined(MBEDTLS_SSL_DTLS_SRTP)
-                       : ssl->dtls_srtp_info.chosen_dtls_srtp_profile !=
-                               MBEDTLS_SRTP_UNSET_PROFILE
-                       && ssl->conf->authmode == MBEDTLS_SSL_VERIFY_NONE
-                       ? MBEDTLS_SSL_VERIFY_OPTIONAL
-#endif /* MBEDTLS_SSL_DTLS_SRTP */
                        : ssl->conf->authmode;
 #else
-    const int authmode =
-#if defined(MBEDTLS_SSL_DTLS_SRTP)
-            ssl->dtls_srtp_info.chosen_dtls_srtp_profile !=
-                                           MBEDTLS_SRTP_UNSET_PROFILE &&
-            ssl->conf->authmode == MBEDTLS_SSL_VERIFY_NONE ?
-            MBEDTLS_SSL_VERIFY_OPTIONAL :
-#endif /* MBEDTLS_SSL_DTLS_SRTP */
-            ssl->conf->authmode;
+    const int authmode = ssl->conf->authmode;
 #endif
     void *rs_ctx = NULL;
     mbedtls_x509_crt *chain = NULL;
