diff --git a/src/gui/server/tcpstreampool.cpp b/src/gui/server/tcpstreampool.cpp
index 5d5795713847fcf0172b0c5d24b09f556db46da5..30f4de63dd1db7f1f76d5a3693f7bcfabcc67150 100644
--- a/src/gui/server/tcpstreampool.cpp
+++ b/src/gui/server/tcpstreampool.cpp
@@ -33,6 +33,8 @@ TCPStreamPool::run() {
       if (input != null && input[0]!=cr13) {
         _inputPool.push(input);
       }
+      // security check, since we are inside a loop
+      if (testCancel() || !good()) {break;}
     }
     if (_outputPool.pop(output, 2LU)) {
       _debug("TCPStreamPool send %s\n", output.c_str());