diff --git a/library/ssl_tls.c b/library/ssl_tls.c
index 32b1bbf..89b653d 100644
--- a/library/ssl_tls.c
+++ b/library/ssl_tls.c
@@ -31,9 +31,11 @@
 #include "mbedtls/platform.h"
 #else
 #include <stdlib.h>
+#include <stdio.h>
 #define mbedtls_calloc    calloc
 #define mbedtls_free      free
-#endif
+#define mbedtls_printf    printf
+#endif /* !MBEDTLS_PLATFORM_C */
 
 #include "mbedtls/ssl.h"
 #include "ssl_misc.h"
@@ -6622,11 +6624,9 @@
         {
             if( array[i] == array[j] )
             {
-            #if defined(MBEDTLS_PLATFORM_C)
                 mbedtls_printf( " entry(%04x,%" MBEDTLS_PRINTF_SIZET
                                 ") is duplicated at %" MBEDTLS_PRINTF_SIZET "\n",
                                 array[i], j, i );
-            #endif
                 ret = -1;
             }
         }
@@ -6649,34 +6649,26 @@
 #if defined(MBEDTLS_DEBUG_C) && defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED)
     if( ssl_array_has_duplicated_entries( ssl_preset_suiteb_sig_algs ) )
     {
-#if defined(MBEDTLS_PLATFORM_C)
         mbedtls_printf( "ssl_preset_suiteb_sig_algs has duplicated entries\n" );
-#endif
         return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED );
     }
 
     if( ssl_array_has_duplicated_entries( ssl_preset_default_sig_algs ) )
     {
-#if defined(MBEDTLS_PLATFORM_C)
         mbedtls_printf( "ssl_preset_default_sig_algs has duplicated entries\n" );
-#endif
         return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED );
     }
 
 #if defined(MBEDTLS_SSL_PROTO_TLS1_2)
     if( ssl_array_has_duplicated_entries( ssl_tls12_preset_suiteb_sig_algs ) )
     {
-#if defined(MBEDTLS_PLATFORM_C)
         mbedtls_printf( "ssl_tls12_preset_suiteb_sig_algs has duplicated entries\n" );
-#endif
         return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED );
     }
 
     if( ssl_array_has_duplicated_entries( ssl_tls12_preset_default_sig_algs ) )
     {
-#if defined(MBEDTLS_PLATFORM_C)
         mbedtls_printf( "ssl_tls12_preset_default_sig_algs has duplicated entries\n" );
-#endif
         return( MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED );
     }
 #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
