diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index ed39664..289920c 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -444,20 +444,14 @@
  * (Used in event-driven IO mode).
  */
 #if !defined(MBEDTLS_TIMING_C)
-void idle( mbedtls_ssl_context *ssl,
-           mbedtls_net_context *fd,
+void idle( mbedtls_net_context *fd,
            int idle_reason )
 {
 #else
-void idle( mbedtls_ssl_context *ssl,
-           mbedtls_net_context *fd,
+void idle( mbedtls_net_context *fd,
            mbedtls_timing_delay_context *timer,
            int idle_reason )
 {
-#if defined(MBEDTLS_DEBUG_C)
-    struct mbedtls_timing_hr_time tm;
-    unsigned long time_elapsed;
-#endif
 #endif
 
     int poll_type = 0;
@@ -468,43 +462,24 @@
         poll_type = MBEDTLS_NET_POLL_READ;
 #if !defined(MBEDTLS_TIMING_C)
     else
-    {
-        MBEDTLS_SSL_DEBUG_MSG( 1, ( "WARNING: No reason for idling given" ) );
         return;
-    }
-#endif
-
-    /* One should not idle on the underlying transport
-     * if data is still pending to be processed. */
-    if( mbedtls_ssl_check_pending( ssl ) != 0 )
-    {
-        MBEDTLS_SSL_DEBUG_MSG( 1, ( "WARNING: Data still pending, but idling requested!" ) );
-    }
-    MBEDTLS_SSL_DEBUG_MSG( 3, ( "idle, waiting for event... " ) );
-
-#if defined(MBEDTLS_TIMING_C) && defined(MBEDTLS_DEBUG_C)
-    mbedtls_timing_get_timer( &tm, 1 /* restart */ );
 #endif
 
     while( 1 )
     {
+        /* Check if timer has expired */
 #if defined(MBEDTLS_TIMING_C)
-#if defined(MBEDTLS_DEBUG_C)
-        time_elapsed = mbedtls_timing_get_timer( &tm, 0 );
-#endif
-        if( mbedtls_timing_get_delay( timer ) == 2 )
+        if( timer != NULL &&
+            mbedtls_timing_get_delay( timer ) == 2 )
         {
-            MBEDTLS_SSL_DEBUG_MSG( 3, ( "[%lu ms] timer expired - continue",
-                                        time_elapsed ) );
             break;
         }
-#endif
+#endif /* MBEDTLS_TIMING_C */
 
+        /* Check if underlying transport became available */
         if( poll_type != 0 &&
             mbedtls_net_poll( fd, poll_type, 0 ) == poll_type )
         {
-            MBEDTLS_SSL_DEBUG_MSG( 3, ( "[%lu ms] net_context signals data - continue",
-                                        time_elapsed ) );
             break;
         }
     }
@@ -1532,9 +1507,9 @@
         if( opt.event == 1 /* level triggered IO */ )
         {
 #if defined(MBEDTLS_TIMING_C)
-            idle( &ssl, &server_fd, &timer, ret );
+            idle( &server_fd, &timer, ret );
 #else
-            idle( &ssl, &server_fd, ret );
+            idle( &server_fd, ret );
 #endif
         }
     }
@@ -1629,9 +1604,9 @@
             if( opt.event == 1 /* level triggered IO */ )
             {
 #if defined(MBEDTLS_TIMING_C)
-                idle( &ssl, &server_fd, &timer, ret );
+                idle( &server_fd, &timer, ret );
 #else
-                idle( &ssl, &server_fd, ret );
+                idle( &server_fd, ret );
 #endif
             }
 
@@ -1693,9 +1668,9 @@
                 if( opt.event == 1 /* level triggered IO */ )
                 {
 #if defined(MBEDTLS_TIMING_C)
-                    idle( &ssl, &server_fd, &timer, ret );
+                    idle( &server_fd, &timer, ret );
 #else
-                    idle( &ssl, &server_fd, ret );
+                    idle( &server_fd, ret );
 #endif
                 }
             }
@@ -1715,9 +1690,9 @@
             if( opt.event == 1 /* level triggered IO */ )
             {
 #if defined(MBEDTLS_TIMING_C)
-                idle( &ssl, &server_fd, &timer, ret );
+                idle( &server_fd, &timer, ret );
 #else
-                idle( &ssl, &server_fd, ret );
+                idle( &server_fd, ret );
 #endif
             }
         }
@@ -1761,9 +1736,9 @@
                 if( opt.event == 1 /* level triggered IO */ )
                 {
 #if defined(MBEDTLS_TIMING_C)
-                    idle( &ssl, &server_fd, &timer, ret );
+                    idle( &server_fd, &timer, ret );
 #else
-                    idle( &ssl, &server_fd, ret );
+                    idle( &server_fd, ret );
 #endif
                 }
                 continue;
@@ -1822,9 +1797,9 @@
             if( opt.event == 1 /* level triggered IO */ )
             {
 #if defined(MBEDTLS_TIMING_C)
-                idle( &ssl, &server_fd, &timer, ret );
+                idle( &server_fd, &timer, ret );
 #else
-                idle( &ssl, &server_fd, ret );
+                idle( &server_fd, ret );
 #endif
             }
         }
@@ -1887,9 +1862,9 @@
             if( opt.event == 1 /* level triggered IO */ )
             {
 #if defined(MBEDTLS_TIMING_C)
-                idle( &ssl, &server_fd, &timer, ret );
+                idle( &server_fd, &timer, ret );
 #else
-                idle( &ssl, &server_fd, ret );
+                idle( &server_fd, ret );
 #endif
             }
         }
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index d70046c..c3321d1 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -846,20 +846,14 @@
  * (Used in event-driven IO mode).
  */
 #if !defined(MBEDTLS_TIMING_C)
-void idle( mbedtls_ssl_context *ssl,
-           mbedtls_net_context *fd,
+void idle( mbedtls_net_context *fd,
            int idle_reason )
 {
 #else
-void idle( mbedtls_ssl_context *ssl,
-           mbedtls_net_context *fd,
+void idle( mbedtls_net_context *fd,
            mbedtls_timing_delay_context *timer,
            int idle_reason )
 {
-#if defined(MBEDTLS_DEBUG_C)
-    struct mbedtls_timing_hr_time tm;
-    unsigned long time_elapsed;
-#endif
 #endif
 
     int poll_type = 0;
@@ -870,44 +864,24 @@
         poll_type = MBEDTLS_NET_POLL_READ;
 #if !defined(MBEDTLS_TIMING_C)
     else
-    {
-        MBEDTLS_SSL_DEBUG_MSG( 1, ( "WARNING: No reason for idling given" ) );
         return;
-    }
-#endif
-
-    /* One should not idle on the underlying transport
-     * if data is still pending to be processed. */
-    if( mbedtls_ssl_check_pending( ssl ) != 0 )
-    {
-        MBEDTLS_SSL_DEBUG_MSG( 1, ( "WARNING: Data still pending, "
-                                    "but idling requested!" ) );
-    }
-    MBEDTLS_SSL_DEBUG_MSG( 3, ( "idle, waiting for event... " ) );
-
-#if defined(MBEDTLS_TIMING_C) && defined(MBEDTLS_DEBUG_C)
-    mbedtls_timing_get_timer( &tm, 1 /* restart */ );
 #endif
 
     while( 1 )
     {
+        /* Check if timer has expired */
 #if defined(MBEDTLS_TIMING_C)
-#if defined(MBEDTLS_DEBUG_C)
-        time_elapsed = mbedtls_timing_get_timer( &tm, 0 );
-#endif
-        if( mbedtls_timing_get_delay( timer ) == 2 )
+        if( timer != NULL &&
+            mbedtls_timing_get_delay( timer ) == 2 )
         {
-            MBEDTLS_SSL_DEBUG_MSG( 3, ( "[%lu ms] timer expired - continue",
-                                        time_elapsed ) );
             break;
         }
-#endif
+#endif /* MBEDTLS_TIMING_C */
 
+        /* Check if underlying transport became available */
         if( poll_type != 0 &&
             mbedtls_net_poll( fd, poll_type, 0 ) == poll_type )
         {
-            MBEDTLS_SSL_DEBUG_MSG( 3, ( "[%lu ms] net_context signals data - "
-                                        "continue", time_elapsed ) );
             break;
         }
     }
@@ -2231,9 +2205,9 @@
         if( opt.event == 1 /* level triggered IO */ )
         {
 #if defined(MBEDTLS_TIMING_C)
-            idle( &ssl, &client_fd, &timer, ret );
+            idle( &client_fd, &timer, ret );
 #else
-            idle( &ssl, &client_fd, ret );
+            idle( &client_fd, ret );
 #endif
         }
     }
@@ -2346,9 +2320,9 @@
                 if( opt.event == 1 /* level triggered IO */ )
                 {
 #if defined(MBEDTLS_TIMING_C)
-                    idle( &ssl, &client_fd, &timer, ret );
+                    idle( &client_fd, &timer, ret );
 #else
-                    idle( &ssl, &client_fd, ret );
+                    idle( &client_fd, ret );
 #endif
                 }
 
@@ -2453,9 +2427,9 @@
             if( opt.event == 1 /* level triggered IO */ )
             {
 #if defined(MBEDTLS_TIMING_C)
-                idle( &ssl, &client_fd, &timer, ret );
+                idle( &client_fd, &timer, ret );
 #else
-                idle( &ssl, &client_fd, ret );
+                idle( &client_fd, ret );
 #endif
             }
         }
@@ -2504,9 +2478,9 @@
             if( opt.event == 1 /* level triggered IO */ )
             {
 #if defined(MBEDTLS_TIMING_C)
-                idle( &ssl, &client_fd, &timer, ret );
+                idle( &client_fd, &timer, ret );
 #else
-                idle( &ssl, &client_fd, ret );
+                idle( &client_fd, ret );
 #endif
             }
         }
@@ -2548,9 +2522,9 @@
                 if( opt.event == 1 /* level triggered IO */ )
                 {
 #if defined(MBEDTLS_TIMING_C)
-                    idle( &ssl, &client_fd, &timer, ret );
+                    idle( &client_fd, &timer, ret );
 #else
-                    idle( &ssl, &client_fd, ret );
+                    idle( &client_fd, ret );
 #endif
                 }
             }
@@ -2570,9 +2544,9 @@
             if( opt.event == 1 /* level triggered IO */ )
             {
 #if defined(MBEDTLS_TIMING_C)
-                idle( &ssl, &client_fd, &timer, ret );
+                idle( &client_fd, &timer, ret );
 #else
-                idle( &ssl, &client_fd, ret );
+                idle( &client_fd, ret );
 #endif
             }
         }
