diff --git a/src/class_receiveDataThread.py b/src/class_receiveDataThread.py
index e5293fe8..a023f80b 100644
--- a/src/class_receiveDataThread.py
+++ b/src/class_receiveDataThread.py
@@ -66,7 +66,10 @@ class receiveDataThread(threading.Thread):
         shared.printLock.release()
         while True:
             try:
+                dataLen = len(self.data)
                 self.data += self.sock.recv(4096)
+                if len(self.data) == dataLen: # recv returns 0 bytes when the remote closes the connection
+                    raise Exception("Remote closed the connection")
             except socket.timeout:
                 shared.printLock.acquire()
                 print 'Timeout occurred waiting for data from', self.HOST + '. Closing receiveData thread. (ID:', str(id(self)) + ')'