diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 80f058b958671a4697a12fb7427018d1b0a2da0b..664632c1ba3b1096cec1aefba4d2656cefb3fe3f 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -948,7 +948,8 @@ void input_thread(void *arg)
     sbbs->input_thread_running = true;
 	sbbs->console|=CON_R_INPUT;
 
-	while(sbbs->online && sbbs->client_socket!=INVALID_SOCKET) {
+	while(sbbs->online && sbbs->client_socket!=INVALID_SOCKET
+		&& node_socket[sbbs->cfg.node_num-1]!=INVALID_SOCKET) {
 
 		pthread_mutex_lock(&sbbs->input_thread_mutex);