diff --git a/library/ssl_tls13_keys.c b/library/ssl_tls13_keys.c
index 6dc27a4..5eb52ab 100644
--- a/library/ssl_tls13_keys.c
+++ b/library/ssl_tls13_keys.c
@@ -593,55 +593,12 @@
     return( 0 );
 }
 
-#if defined(MBEDTLS_SSL_NEW_SESSION_TICKET)
-int mbedtls_ssl_tls1_3_generate_resumption_master_secret(
-    mbedtls_ssl_context *ssl )
-{
-    int ret = 0;
-
-    mbedtls_md_type_t md_type;
-    mbedtls_md_info_t const *md_info;
-    size_t md_size;
-
-    unsigned char transcript[MBEDTLS_MD_MAX_SIZE];
-    size_t transcript_len;
-
-    MBEDTLS_SSL_DEBUG_MSG( 2,
-          ( "=> mbedtls_ssl_tls1_3_generate_resumption_master_secret" ) );
-
-    md_type = ssl->handshake->ciphersuite_info->mac;
-    md_info = mbedtls_md_info_from_type( md_type );
-    md_size = mbedtls_md_get_size( md_info );
-
-    ret = mbedtls_ssl_get_handshake_transcript( ssl, md_type,
-                                                transcript, sizeof( transcript ),
-                                                &transcript_len );
-    if( ret != 0 )
-        return( ret );
-
-    ret = mbedtls_ssl_tls1_3_derive_resumption_master_secret( md_type,
-                              ssl->handshake->tls1_3_master_secrets.app,
-                              transcript, transcript_len,
-                              &ssl->session_negotiate->app_secrets );
-    if( ret != 0 )
-        return( ret );
-
-    MBEDTLS_SSL_DEBUG_BUF( 4, "Resumption master secret",
-             ssl->session_negotiate->app_secrets.resumption_master_secret,
-             md_size );
-
-    MBEDTLS_SSL_DEBUG_MSG( 2,
-          ( "<= mbedtls_ssl_tls1_3_generate_resumption_master_secret" ) );
-    return( 0 );
-}
-#else /* MBEDTLS_SSL_NEW_SESSION_TICKET */
 int mbedtls_ssl_tls1_3_generate_resumption_master_secret(
     mbedtls_ssl_context *ssl )
 {
     ((void) ssl);
     return( 0 );
 }
-#endif /* MBEDTLS_SSL_NEW_SESSION_TICKET */
 
 static int ssl_tls1_3_calc_finished_core( mbedtls_md_type_t md_type,
                                           unsigned char const *base_key,
