diff --git a/programs/ssl/ssl_client1.c b/programs/ssl/ssl_client1.c
index 270bb62..a61ae64 100644
--- a/programs/ssl/ssl_client1.c
+++ b/programs/ssl/ssl_client1.c
@@ -29,6 +29,7 @@
 #include <stdio.h>
 
 #include "polarssl/net.h"
+#include "polarssl/debug.h"
 #include "polarssl/ssl.h"
 #include "polarssl/entropy.h"
 #include "polarssl/ctr_drbg.h"
@@ -61,11 +62,10 @@
 
 static void my_debug( void *ctx, int level, const char *str )
 {
-    if( level < DEBUG_LEVEL )
-    {
-        fprintf( (FILE *) ctx, "%s", str );
-        fflush(  (FILE *) ctx  );
-    }
+    ((void) level);
+
+    fprintf( (FILE *) ctx, "%s", str );
+    fflush(  (FILE *) ctx  );
 }
 
 int main( int argc, char *argv[] )
@@ -82,6 +82,10 @@
     ((void) argc);
     ((void) argv);
 
+#if defined(POLARSSL_DEBUG_C)
+    debug_set_threshold( DEBUG_LEVEL );
+#endif
+
     /*
      * 0. Initialize the RNG and the session data
      */
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index 7c043eb..012403a 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -36,6 +36,7 @@
 #include "polarssl/certs.h"
 #include "polarssl/x509.h"
 #include "polarssl/error.h"
+#include "polarssl/debug.h"
 
 #if defined(POLARSSL_TIMING_C)
 #include "polarssl/timing.h"
@@ -112,11 +113,10 @@
 
 static void my_debug( void *ctx, int level, const char *str )
 {
-    if( level < opt.debug_level )
-    {
-        fprintf( (FILE *) ctx, "%s", str );
-        fflush(  (FILE *) ctx  );
-    }
+    ((void) level);
+
+    fprintf( (FILE *) ctx, "%s", str );
+    fflush(  (FILE *) ctx  );
 }
 
 /*
@@ -589,6 +589,10 @@
             goto usage;
     }
 
+#if defined(POLARSSL_DEBUG_C)
+    debug_set_threshold( opt.debug_level );
+#endif
+
     if( opt.force_ciphersuite[0] > 0 )
     {
         const ssl_ciphersuite_t *ciphersuite_info;
diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c
index 49c3965..5b86f9b 100644
--- a/programs/ssl/ssl_server.c
+++ b/programs/ssl/ssl_server.c
@@ -40,6 +40,7 @@
 #include "polarssl/ssl.h"
 #include "polarssl/net.h"
 #include "polarssl/error.h"
+#include "polarssl/debug.h"
 
 #if defined(POLARSSL_SSL_CACHE_C)
 #include "polarssl/ssl_cache.h"
@@ -73,11 +74,10 @@
 
 static void my_debug( void *ctx, int level, const char *str )
 {
-    if( level < DEBUG_LEVEL )
-    {
-        fprintf( (FILE *) ctx, "%s", str );
-        fflush(  (FILE *) ctx  );
-    }
+    ((void) level);
+
+    fprintf( (FILE *) ctx, "%s", str );
+    fflush(  (FILE *) ctx  );
 }
 
 int main( int argc, char *argv[] )
@@ -108,6 +108,10 @@
     pk_init( &pkey );
     entropy_init( &entropy );
 
+#if defined(POLARSSL_DEBUG_C)
+    debug_set_threshold( DEBUG_LEVEL );
+#endif
+
     /*
      * 1. Load the certificates and private RSA key
      */
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index c578c5b..44f04a4 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -51,6 +51,7 @@
 #include "polarssl/certs.h"
 #include "polarssl/x509.h"
 #include "polarssl/error.h"
+#include "polarssl/debug.h"
 
 #if defined(POLARSSL_SSL_CACHE_C)
 #include "polarssl/ssl_cache.h"
@@ -137,11 +138,10 @@
 
 static void my_debug( void *ctx, int level, const char *str )
 {
-    if( level < opt.debug_level )
-    {
-        fprintf( (FILE *) ctx, "%s", str );
-        fflush(  (FILE *) ctx  );
-    }
+    ((void) level);
+
+    fprintf( (FILE *) ctx, "%s", str );
+    fflush(  (FILE *) ctx  );
 }
 
 /*
@@ -721,6 +721,10 @@
             goto usage;
     }
 
+#if defined(POLARSSL_DEBUG_C)
+    debug_set_threshold( opt.debug_level );
+#endif
+
     if( opt.force_ciphersuite[0] > 0 )
     {
         const ssl_ciphersuite_t *ciphersuite_info;
