diff --git a/library/ssl_client.c b/library/ssl_client.c
index 16cef02..1c5b447 100644
--- a/library/ssl_client.c
+++ b/library/ssl_client.c
@@ -108,10 +108,6 @@
 
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
     mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SERVERNAME );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-             mbedtls_tls13_get_extension_name(
-                 MBEDTLS_TLS_EXT_SERVERNAME ) ) );
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
     return( 0 );
 }
@@ -186,10 +182,6 @@
 
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
     mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_ALPN );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-             mbedtls_tls13_get_extension_name(
-                 MBEDTLS_TLS_EXT_ALPN ) ) );
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
     return( 0 );
 }
@@ -310,10 +302,8 @@
     *out_len = p - buf;
 
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
-    mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS );
-    MBEDTLS_SSL_DEBUG_MSG( 4, ( "sent %s extension",
-                                mbedtls_tls13_get_extension_name(
-                                    MBEDTLS_TLS_EXT_SUPPORTED_GROUPS ) ) );
+    mbedtls_ssl_tls13_set_hs_sent_ext_mask(
+        ssl, MBEDTLS_TLS_EXT_SUPPORTED_GROUPS );
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
 
     return( 0 );
@@ -684,6 +674,10 @@
                                   p_extensions_len, extensions_len );
     }
 
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
+    MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CLIENT_HELLO );
+#endif
+
     *out_len = p - buf;
     return( 0 );
 }
diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 7bc0a0c..04d2ef4 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -8955,10 +8955,6 @@
 
 #if defined(MBEDTLS_SSL_PROTO_TLS1_3)
     mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_SIG_ALG );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-             mbedtls_tls13_get_extension_name(
-                MBEDTLS_TLS_EXT_SIG_ALG ) ) );
 #endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
 
     return( 0 );
diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c
index 27747a2..54101cb 100644
--- a/library/ssl_tls13_client.c
+++ b/library/ssl_tls13_client.c
@@ -89,12 +89,10 @@
     }
 
     *out_len = 5 + versions_len;
+
     mbedtls_ssl_tls13_set_hs_sent_ext_mask(
         ssl, MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-             mbedtls_tls13_get_extension_name(
-                 MBEDTLS_TLS_EXT_SUPPORTED_VERSIONS ) ) );
+
     return( 0 );
 }
 
@@ -366,11 +364,6 @@
     MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, key_share extension", buf, *out_len );
 
     mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_KEY_SHARE );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-
-             mbedtls_tls13_get_extension_name(
-                 MBEDTLS_TLS_EXT_KEY_SHARE ) ) );
 
 cleanup:
 
@@ -610,12 +603,8 @@
 
     *out_len = handshake->hrr_cookie_len + 6;
 
-
     mbedtls_ssl_tls13_set_hs_sent_ext_mask( ssl, MBEDTLS_TLS_EXT_COOKIE );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-             mbedtls_tls13_get_extension_name(
-                 MBEDTLS_TLS_EXT_COOKIE ) ) );
+
     return( 0 );
 }
 
@@ -688,10 +677,7 @@
 
     mbedtls_ssl_tls13_set_hs_sent_ext_mask(
         ssl, MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-             mbedtls_tls13_get_extension_name(
-                 MBEDTLS_TLS_EXT_PSK_KEY_EXCHANGE_MODES ) ) );
+
     return ( 0 );
 }
 
@@ -1059,10 +1045,6 @@
 
     mbedtls_ssl_tls13_set_hs_sent_ext_mask(
         ssl, MBEDTLS_TLS_EXT_PRE_SHARED_KEY );
-    MBEDTLS_SSL_DEBUG_MSG(
-        4, ( "sent %s extension",
-             mbedtls_tls13_get_extension_name(
-                 MBEDTLS_TLS_EXT_PRE_SHARED_KEY ) ) );
 
     return( 0 );
 }
diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c
index a94bbef..1a17372 100644
--- a/library/ssl_tls13_generic.c
+++ b/library/ssl_tls13_generic.c
@@ -887,6 +887,8 @@
 
     *out_len = p - buf;
 
+    MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE );
+
     return( 0 );
 }
 
diff --git a/library/ssl_tls13_server.c b/library/ssl_tls13_server.c
index f0f06b8..0239090 100644
--- a/library/ssl_tls13_server.c
+++ b/library/ssl_tls13_server.c
@@ -2128,6 +2128,10 @@
 
     MBEDTLS_SSL_DEBUG_BUF( 3, "server hello", buf, *out_len );
 
+    MBEDTLS_SSL_PRINT_SENT_EXTS(
+        3, is_hrr ? MBEDTLS_SSL_TLS1_3_HS_HELLO_RETRY_REQUEST :
+                    MBEDTLS_SSL_HS_SERVER_HELLO );
+
     return( ret );
 }
 
@@ -2312,6 +2316,8 @@
 
     MBEDTLS_SSL_DEBUG_BUF( 4, "encrypted extensions", buf, *out_len );
 
+    MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_ENCRYPTED_EXTENSIONS );
+
     return( 0 );
 }
 
@@ -2441,6 +2447,8 @@
 
     *out_len = p - buf;
 
+    MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_CERTIFICATE_REQUEST );
+
     return( 0 );
 }
 
@@ -2834,6 +2842,8 @@
     MBEDTLS_SSL_DEBUG_BUF( 4, "ticket", buf, *out_len );
     MBEDTLS_SSL_DEBUG_MSG( 2, ( "<= write new session ticket" ) );
 
+    MBEDTLS_SSL_PRINT_SENT_EXTS( 3, MBEDTLS_SSL_HS_NEW_SESSION_TICKET );
+
     return( 0 );
 }
 
