diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index cc1072abb2584b9c2bd46fedd235e7ed54e24976..283d806aad3458f0b5fd0ab02b19d51cb0c8fa30 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -5490,6 +5490,12 @@ NO_SSH:
 			if(sbbs->getnodedat(i,&node,1)!=0)
 				continue;
 			if(node.status==NODE_WFC) {
+				if(node_socket[i - 1] != INVALID_SOCKET) {
+					lprintf(LOG_CRIT, "%04d !Node %d status is WFC, but the node socket (%d) and thread are still in use!"
+						,client_socket, i, node_socket[i - 1]);
+					sbbs->putnodedat(i, &node);
+					continue;
+				}
 				node.status=NODE_LOGON;
 #ifdef USE_CRYPTLIB
 				if(ssh)