diff --git a/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc b/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc
index f1d6627974b8dab48c90ad75cfe08f4ae83f8b82..049bb040a2fe4432a11088545acc88af8a5a5a26 100644
--- a/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc
+++ b/RTCP/Cobalt/GPUProc/src/Storage/SSH.cc
@@ -506,15 +506,19 @@ namespace LOFAR
 
       Cancellation::enable();
 
-      do {
-        struct timeval timeout;
+      /*
+       * Do NOT repeat select() if it returns 0! For some reason,
+       * input will not arrive anymore if that happens once and
+       * we don't communicate to libssh2 in the mean time.
+       */
+
+      struct timeval timeout;
 
-        timeout.tv_sec = 1;
-        timeout.tv_usec = 0;
+      timeout.tv_sec = 1;
+      timeout.tv_usec = 0;
 
-        // select() is a cancellation point
-        rc = ::select(sock.fd + 1, readfd, writefd, NULL, &timeout);
-      } while (rc == 0);
+      // select() is a cancellation point
+      rc = ::select(sock.fd + 1, readfd, writefd, NULL, &timeout);
 
       Cancellation::disable();