diff --git a/ChangeLog b/ChangeLog
index 04aa88e0a446ddc6c1f27b254fcf65112d5eefd9..fa6847d0e5370339b5b70be0b737c52ea71adbde 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2012-07-13  Niels Möller  <nisse@lysator.liu.se>
 
+	* src/testsuite/tcpconnect.c (main): Ignore SIGPIPE. Fixes to
+	diagnostic printouts.
+
 	* src/lsh.c (main_argp_parser): Pass on --hostkey-algorithm and
 	new option --kex-algorithm to lsh-transport.
 
diff --git a/src/testsuite/tcpconnect.c b/src/testsuite/tcpconnect.c
index 2c156c88330ab3cd7a4fe001d6fae3501140227b..541fb02eeccbf427d626e85ba251ab81c5a2fecf 100644
--- a/src/testsuite/tcpconnect.c
+++ b/src/testsuite/tcpconnect.c
@@ -33,6 +33,8 @@
 #include <unistd.h>
 #include <fcntl.h>
 
+#include <signal.h>
+
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
@@ -182,6 +184,9 @@ main (int argc, char **argv)
       if (connect (fd, p->ai_addr, p->ai_addrlen) >= 0)
 	break;
 
+      if (verbose)
+	fprintf(stderr, "Connect failed: %s\n", strerror(errno));
+
       close (fd);
       fd = -1;
     }
@@ -229,6 +234,8 @@ main (int argc, char **argv)
   else if (fcntl(fd, F_SETFL, flags | 1 | O_NONBLOCK) < 0)
     werror("fcntl F_SETFL failed: %s\n", strerror(errno));
 
+  signal(SIGPIPE, SIG_IGN);
+
   buf_size = buf_pos = 0;  
   seen_stdin_eof = seen_remote_eof = 0;
 
@@ -362,7 +369,7 @@ main (int argc, char **argv)
   close (fd);
 
   if (verbose)
-    fprintf(stderr, "[Connection closed]");
+    fprintf(stderr, "[Connection closed]\n");
 
   return EXIT_SUCCESS;
 }