diff --git a/programs/ssl/ssl_server2.c b/programs/ssl/ssl_server2.c
index e58099f..a09aa3b 100644
--- a/programs/ssl/ssl_server2.c
+++ b/programs/ssl/ssl_server2.c
@@ -63,6 +63,7 @@
 #include <string.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <signal.h>
 
 #include "polarssl/net.h"
 #include "polarssl/ssl.h"
@@ -564,10 +565,19 @@
 }
 #endif /* POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED */
 
+/* Interruption handler to ensure clean exit (for valgrind testing) */
+static int listen_fd;
+static int received_sigterm = 0;
+void term_handler( int sig )
+{
+    ((void) sig);
+    received_sigterm = 1;
+    net_close( listen_fd ); /* causes net_accept() to abort */
+}
+
 int main( int argc, char *argv[] )
 {
     int ret = 0, len, written, frags;
-    int listen_fd;
     int client_fd = -1;
     int version_suites[4][2];
     unsigned char buf[IO_BUF_LEN];
@@ -635,6 +645,9 @@
     memset( (void *) alpn_list, 0, sizeof( alpn_list ) );
 #endif
 
+    /* Abort cleanly on SIGTERM */
+    signal( SIGTERM, term_handler );
+
     if( argc == 0 )
     {
     usage:
@@ -1377,6 +1390,13 @@
 
     if( ( ret = net_accept( listen_fd, &client_fd, NULL ) ) != 0 )
     {
+        if( received_sigterm )
+        {
+            printf( " interrupted by SIGTERM\n" );
+            ret = 0;
+            goto exit;
+        }
+
         printf( " failed\n  ! net_accept returned -0x%x\n\n", -ret );
         goto exit;
     }
