diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index eb48eb1..b5bfaed 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -1002,6 +1002,7 @@
         if( ret == 0 )
         {
             printf("\n\nEOF\n\n");
+            ssl_close_notify( &ssl );
             break;
         }
 
@@ -1010,12 +1011,12 @@
     }
     while( 1 );
 
-    ssl_close_notify( &ssl );
-
     if( opt.reconnect != 0 )
     {
         --opt.reconnect;
 
+        net_close( server_fd );
+
 #if defined(POLARSSL_TIMING_C)
         if( opt.reco_delay > 0 )
             m_sleep( 1000 * opt.reco_delay );
@@ -1055,6 +1056,8 @@
     }
 
 exit:
+    if( ret == POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY )
+        ret = 0;
 
 #ifdef POLARSSL_ERROR_C
     if( ret != 0 )
@@ -1062,9 +1065,6 @@
         char error_buf[100];
         polarssl_strerror( ret, error_buf, 100 );
         printf("Last error was: -0x%X - %s\n\n", -ret, error_buf );
-
-        if( ret == POLARSSL_ERR_SSL_PEER_CLOSE_NOTIFY )
-            ret = 0;
     }
 #endif
 
diff --git a/programs/ssl/ssl_pthread_server.c b/programs/ssl/ssl_pthread_server.c
index 7e1b52e..efb360c 100644
--- a/programs/ssl/ssl_pthread_server.c
+++ b/programs/ssl/ssl_pthread_server.c
@@ -270,6 +270,21 @@
     printf( "  [ #%d ]  %d bytes written\n=====\n%s\n=====\n",
             thread_id, len, (char *) buf );
 
+    printf( "  [ #%d ]  . Closing the connection...", thread_id );
+
+    while( ( ret = ssl_close_notify( &ssl ) ) < 0 )
+    {
+        if( ret != POLARSSL_ERR_NET_WANT_READ &&
+            ret != POLARSSL_ERR_NET_WANT_WRITE )
+        {
+            printf( "  [ #%d ]  failed: ssl_close_notify returned -0x%04x\n",
+                    thread_id, ret );
+            goto thread_exit;
+        }
+    }
+
+    printf( " ok\n" );
+
     ret = 0;
 
 thread_exit:
diff --git a/programs/ssl/ssl_server.c b/programs/ssl/ssl_server.c
index 7b8ae35..7d46aac 100644
--- a/programs/ssl/ssl_server.c
+++ b/programs/ssl/ssl_server.c
@@ -323,7 +323,21 @@
 
     len = ret;
     printf( " %d bytes written\n\n%s\n", len, (char *) buf );
-    
+
+    printf( "  . Closing the connection..." );
+
+    while( ( ret = ssl_close_notify( &ssl ) ) < 0 )
+    {
+        if( ret != POLARSSL_ERR_NET_WANT_READ &&
+            ret != POLARSSL_ERR_NET_WANT_WRITE )
+        {
+            printf( " failed\n  ! ssl_close_notify returned %d\n\n", ret );
+            goto reset;
+        }
+    }
+
+    printf( " ok\n" );
+
     ret = 0;
     goto reset;
 
diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index 4bb457c..4e199c3 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -1261,6 +1261,20 @@
         printf( " ok\n" );
     }
 
+    printf( "  . Closing the connection..." );
+
+    while( ( ret = ssl_close_notify( &ssl ) ) < 0 )
+    {
+        if( ret != POLARSSL_ERR_NET_WANT_READ &&
+            ret != POLARSSL_ERR_NET_WANT_WRITE )
+        {
+            printf( " failed\n  ! ssl_close_notify returned %d\n\n", ret );
+            goto reset;
+        }
+    }
+
+    printf( " ok\n" );
+
     ret = 0;
     goto reset;
 
