diff --git a/library/ssl_debug_helpers.h b/library/ssl_debug_helpers.h
index 8fce87a..ad84619 100644
--- a/library/ssl_debug_helpers.h
+++ b/library/ssl_debug_helpers.h
@@ -50,12 +50,10 @@
                                    int hs_msg_type, uint32_t extensions_mask,
                                    const char *extra );
 
-void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl,
-                                       int level, const char *file, int line,
-                                       int hs_msg_type,
-                                       unsigned int extension_type,
-                                       const char *extra_msg0,
-                                       const char *extra_msg1 );
+void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl,
+                                  int level, const char *file, int line,
+                                  int hs_msg_type, unsigned int extension_type,
+                                  const char *extra_msg0, const char *extra_msg1 );
 
 #define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type )                       \
             mbedtls_ssl_print_extensions( ssl, level, __FILE__, __LINE__,       \
@@ -69,16 +67,17 @@
                                           ssl->handshake->received_extensions,  \
                                           "received" )
 
-#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra ) \
-            mbedtls_ssl_print_extension_type( ssl, level, __FILE__, __LINE__,   \
-                                    hs_msg_type, extension_type, extra, NULL )
+#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra )      \
+            mbedtls_ssl_print_extension( ssl, level, __FILE__, __LINE__,        \
+                                         hs_msg_type, extension_type,           \
+                                         extra, NULL )
 #else
 
 #define MBEDTLS_SSL_PRINT_SENT_EXTS( level, hs_msg_type )
 
 #define MBEDTLS_SSL_PRINT_RECEIVED_EXTS( level, hs_msg_type )
 
-#define MBEDTLS_SSL_PRINT_EXT_TYPE( level, hs_msg_type, extension_type, extra )
+#define MBEDTLS_SSL_PRINT_EXT( level, hs_msg_type, extension_type, extra )
 
 #endif /* MBEDTLS_DEBUG_C */
 
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 4787ca0..efe2463 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -704,15 +704,13 @@
         case MBEDTLS_SSL_HS_CERTIFICATE_REQUEST:
             return( "CertificateRequest" );
     }
-    return( NULL );
+    return( "Unknown" );
 }
 
-void mbedtls_ssl_print_extension_type( const mbedtls_ssl_context *ssl,
-                                       int level, const char *file, int line,
-                                       int hs_msg_type,
-                                       unsigned int extension_type,
-                                       const char *extra_msg0,
-                                       const char *extra_msg1 )
+void mbedtls_ssl_print_extension( const mbedtls_ssl_context *ssl,
+                                  int level, const char *file, int line,
+                                  int hs_msg_type, unsigned int extension_type,
+                                  const char *extra_msg0, const char *extra_msg1 )
 {
     const char *extra_msg;
     if( extra_msg0 && extra_msg1 )
@@ -754,7 +752,7 @@
          i < sizeof( extension_name_table ) / sizeof( extension_name_table[0] );
          i++ )
     {
-        mbedtls_ssl_print_extension_type(
+        mbedtls_ssl_print_extension(
             ssl, level, file, line, hs_msg_type, extension_type_table[i],
             extensions_mask & ( 1 << i ) ? "was" : "was not", extra );
     }
diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c
index fff0feb..f4502d2 100644
--- a/library/ssl_tls13_client.c
+++ b/library/ssl_tls13_client.c
@@ -2025,7 +2025,7 @@
                 break;
 #endif /* MBEDTLS_SSL_ALPN */
             default:
-                MBEDTLS_SSL_PRINT_EXT_TYPE(
+                MBEDTLS_SSL_PRINT_EXT(
                     3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS,
                     extension_type, "( ignored )" );
                 break;
@@ -2213,7 +2213,7 @@
                 break;
 
             default:
-                MBEDTLS_SSL_PRINT_EXT_TYPE(
+                MBEDTLS_SSL_PRINT_EXT(
                     3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST,
                     extension_type, "( ignored )" );
                 break;
@@ -2504,7 +2504,7 @@
         switch( extension_type )
         {
             default:
-                MBEDTLS_SSL_PRINT_EXT_TYPE(
+                MBEDTLS_SSL_PRINT_EXT(
                     3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET,
                     extension_type, "( ignored )" );
                 break;
diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c
index a9c8c97..39b86b9 100644
--- a/library/ssl_tls13_generic.c
+++ b/library/ssl_tls13_generic.c
@@ -537,7 +537,7 @@
             switch( extension_type )
             {
                 default:
-                    MBEDTLS_SSL_PRINT_EXT_TYPE(
+                    MBEDTLS_SSL_PRINT_EXT(
                         3, MBEDTLS_SSL_HS_CERTIFICATE,
                         extension_type, "( ignored )" );
                     break;
@@ -1545,12 +1545,12 @@
     uint32_t extension_mask = mbedtls_ssl_get_extension_mask(
                                   received_extension_type );
 
-    MBEDTLS_SSL_PRINT_EXT_TYPE(
+    MBEDTLS_SSL_PRINT_EXT(
         3, hs_msg_type, received_extension_type, "received" );
 
     if( ( extension_mask & hs_msg_allowed_extensions_mask ) == 0 )
     {
-        MBEDTLS_SSL_PRINT_EXT_TYPE(
+        MBEDTLS_SSL_PRINT_EXT(
             3, hs_msg_type, received_extension_type, "is illegal" );
         MBEDTLS_SSL_PEND_FATAL_ALERT(
             MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER,
@@ -1577,7 +1577,7 @@
             return( 0 );
     }
 
-    MBEDTLS_SSL_PRINT_EXT_TYPE(
+    MBEDTLS_SSL_PRINT_EXT(
             3, hs_msg_type, received_extension_type, "is unsupported" );
     MBEDTLS_SSL_PEND_FATAL_ALERT(
         MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT,
diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c
index 051afa2..28f2422 100644
--- a/library/ssl_tls13_server.c
+++ b/library/ssl_tls13_server.c
@@ -1614,7 +1614,7 @@
 #endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */
 
             default:
-                MBEDTLS_SSL_PRINT_EXT_TYPE(
+                MBEDTLS_SSL_PRINT_EXT(
                     3, MBEDTLS_SSL_HS_CLIENT_HELLO,
                     extension_type, "( ignored )" );
                 break;
