diff --git a/library/ssl_misc.h b/library/ssl_misc.h
index 6b17667..e16c674 100644
--- a/library/ssl_misc.h
+++ b/library/ssl_misc.h
@@ -26,7 +26,6 @@
 
 #include "mbedtls/ssl.h"
 #include "mbedtls/cipher.h"
-#include "mbedtls/debug.h"
 
 #if defined(MBEDTLS_USE_PSA_CRYPTO)
 #include "psa/crypto.h"
@@ -135,33 +134,25 @@
 /*
  * Helper macros for function call with returen check.
  */
-/* utils for strip parens in marcro */
-#define MBEDTLS_SSL_PROC_STRIP_PARENS( ... )   __VA_ARGS__
-
 /*
  * Exit and print debug message when return none zero value
  */
-#define MBEDTLS_SSL_PROC_CHK( fn, args )                        \
+#define MBEDTLS_SSL_PROC_CHK( f )                               \
     do {                                                        \
-        ret = fn(MBEDTLS_SSL_PROC_STRIP_PARENS args);           \
+        ret = ( f );                                            \
         if( ret != 0 )                                          \
         {                                                       \
-            if( ret > 0 )                                       \
-                ret = MBEDTLS_ERR_SSL_INTERNAL_ERROR;           \
-            MBEDTLS_SSL_DEBUG_RET( 1, #fn, ret );               \
             goto cleanup;                                       \
         }                                                       \
     } while( 0 )
-
 /*
  * Exit and print debug message when return negative value
  */
-#define MBEDTLS_SSL_PROC_CHK_NEG( fn, args )                    \
+#define MBEDTLS_SSL_PROC_CHK_NEG( f )                           \
     do {                                                        \
-        ret = fn(MBEDTLS_SSL_PROC_STRIP_PARENS args);           \
+        ret = ( f );                                            \
         if( ret < 0 )                                           \
         {                                                       \
-            MBEDTLS_SSL_DEBUG_RET( 1, #fn, ret );               \
             goto cleanup;                                       \
         }                                                       \
     } while( 0 )
diff --git a/library/ssl_tls13_client.c b/library/ssl_tls13_client.c
index 373efff..6b89273 100644
--- a/library/ssl_tls13_client.c
+++ b/library/ssl_tls13_client.c
@@ -381,22 +381,25 @@
 
     MBEDTLS_SSL_DEBUG_MSG( 2, ( "=> write client hello" ) );
 
-    MBEDTLS_SSL_PROC_CHK( ssl_tls13_prepare_client_hello, ( ssl ) );
+    MBEDTLS_SSL_PROC_CHK( ssl_tls13_prepare_client_hello( ssl ) );
 
-    MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_start_handshake_msg,
-                          ( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO,
-                          &buf, &buf_len ) );
+    MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_start_handshake_msg(
+                                ssl, MBEDTLS_SSL_HS_CLIENT_HELLO,
+                                &buf, &buf_len ) );
 
-    MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_client_hello_body,
-                          ( ssl, buf, buf_len, &msg_len ) );
+    MBEDTLS_SSL_PROC_CHK( ssl_tls13_write_client_hello_body( ssl, buf,
+                                                             buf_len,
+                                                             &msg_len ) );
 
-    mbedtls_ssl_tls13_add_hs_hdr_to_checksum( ssl, MBEDTLS_SSL_HS_CLIENT_HELLO,
+    mbedtls_ssl_tls13_add_hs_hdr_to_checksum( ssl,
+                                              MBEDTLS_SSL_HS_CLIENT_HELLO,
                                               msg_len );
     ssl->handshake->update_checksum( ssl, buf, msg_len );
 
-    MBEDTLS_SSL_PROC_CHK( ssl_tls13_finalize_client_hello, ( ssl ) );
-    MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_finish_handshake_msg,
-                          ( ssl, buf_len, msg_len ) );
+    MBEDTLS_SSL_PROC_CHK( ssl_tls13_finalize_client_hello( ssl ) );
+    MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_tls13_finish_handshake_msg( ssl,
+                                                                  buf_len,
+                                                                  msg_len ) );
 
 cleanup:
 
diff --git a/library/ssl_tls13_generic.c b/library/ssl_tls13_generic.c
index fb6da34..3c49a37 100644
--- a/library/ssl_tls13_generic.c
+++ b/library/ssl_tls13_generic.c
@@ -57,7 +57,7 @@
 
     /* Add reserved 4 bytes for handshake header */
     ssl->out_msglen = msg_len + 4;
-    MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_write_handshake_msg_ext, ( ssl, 0 ) );
+    MBEDTLS_SSL_PROC_CHK( mbedtls_ssl_write_handshake_msg_ext( ssl, 0 ) );
 
 cleanup:
     return( ret );
