diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index d739dfc..09a1409 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -3884,8 +3884,6 @@
     mbedtls_ssl_reset_in_out_pointers( ssl );
 
 #if defined(MBEDTLS_SSL_DTLS_SRTP)
-    ssl->dtls_srtp_profiles_list = NULL;
-    ssl->dtls_srtp_profiles_list_len = 0;
     ssl->chosen_dtls_srtp_profile = MBEDTLS_SRTP_UNSET_PROFILE;
     ssl->dtls_srtp_keys = NULL;
     ssl->dtls_srtp_keys_len = 0;
@@ -4718,7 +4716,7 @@
 #endif /* MBEDTLS_SSL_ALPN */
 
 #if defined(MBEDTLS_SSL_DTLS_SRTP)
-int mbedtls_ssl_set_dtls_srtp_protection_profiles( mbedtls_ssl_context *ssl, const enum mbedtls_DTLS_SRTP_protection_profiles *profiles, size_t profiles_number)
+int mbedtls_ssl_conf_dtls_srtp_protection_profiles( mbedtls_ssl_config *conf, const enum mbedtls_DTLS_SRTP_protection_profiles *profiles, size_t profiles_number)
 {
     size_t i;
     /* check in put validity : must be a list of profiles from enumeration */
@@ -4727,8 +4725,8 @@
             return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
     }
 
-    mbedtls_free(ssl->dtls_srtp_profiles_list);
-    ssl->dtls_srtp_profiles_list = (enum mbedtls_DTLS_SRTP_protection_profiles *)mbedtls_calloc(1, profiles_number*sizeof(enum mbedtls_DTLS_SRTP_protection_profiles));
+    mbedtls_free(conf->dtls_srtp_profiles_list);
+    conf->dtls_srtp_profiles_list = (enum mbedtls_DTLS_SRTP_protection_profiles *)mbedtls_calloc(1, profiles_number*sizeof(enum mbedtls_DTLS_SRTP_protection_profiles));
 
     for (i=0; i<profiles_number; i++) {
         switch (profiles[i]) {
@@ -4736,18 +4734,18 @@
             case MBEDTLS_SRTP_AES128_CM_HMAC_SHA1_32:
             case MBEDTLS_SRTP_NULL_HMAC_SHA1_80:
             case MBEDTLS_SRTP_NULL_HMAC_SHA1_32:
-                ssl->dtls_srtp_profiles_list[i] = profiles[i];
+                conf->dtls_srtp_profiles_list[i] = profiles[i];
                 break;
             default:
-                mbedtls_free(ssl->dtls_srtp_profiles_list);
-                ssl->dtls_srtp_profiles_list = NULL;
-                ssl->dtls_srtp_profiles_list_len = 0;
+                mbedtls_free(conf->dtls_srtp_profiles_list);
+                conf->dtls_srtp_profiles_list = NULL;
+                conf->dtls_srtp_profiles_list_len = 0;
                 return MBEDTLS_ERR_SSL_BAD_INPUT_DATA;
         }
     }
 
     /* assign array length */
-    ssl->dtls_srtp_profiles_list_len = profiles_number;
+    conf->dtls_srtp_profiles_list_len = profiles_number;
 
     return( 0 );
 }
@@ -6857,7 +6855,7 @@
 #endif
 
 #if defined (MBEDTLS_SSL_DTLS_SRTP)
-    mbedtls_free( ssl->dtls_srtp_profiles_list );
+    mbedtls_zeroize( ssl->dtls_srtp_keys, ssl->dtls_srtp_keys_len );
     mbedtls_free( ssl->dtls_srtp_keys );
 #endif /* MBEDTLS_SSL_DTLS_SRTP */
 
@@ -7114,6 +7112,10 @@
     ssl_key_cert_free( conf->key_cert );
 #endif
 
+#if defined (MBEDTLS_SSL_DTLS_SRTP)
+    mbedtls_free( conf->dtls_srtp_profiles_list );
+#endif
+
     mbedtls_platform_zeroize( conf, sizeof( mbedtls_ssl_config ) );
 }
 
