diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 27ab604a72d38abfa6a0d356469e35159db95b91..9458afdfffe06b1beb13860bf4a9504c6ee0fff4 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -1025,6 +1025,9 @@ void input_thread(void *arg)
 			if(i==0 && sock==sbbs->client_socket)
 				continue;
 
+			if(sbbs->client_socket==INVALID_SOCKET)
+				break;
+
 			if(sock==sbbs->client_socket)  {
 	        	if(ERROR_VALUE == ENOTSOCK)
     	            lprintf("Node %d socket closed by peer on input->select", sbbs->cfg.node_num);