diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index a1c395bd53f3f8c133dfdc7edd5a62a8f0b147bb..d38a6c53a31088078664e072c8c04f5e7285e31a 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -3166,7 +3166,8 @@ void DLLCALL mail_server(void* arg)
 			}
 
 
-			if(FD_ISSET(server_socket,&socket_set)) {
+			if(server_socket!=INVALID_SOCKET
+				&& FD_ISSET(server_socket,&socket_set)) {
 
 				client_addr_len = sizeof(client_addr);
 				client_socket = accept(server_socket, (struct sockaddr *)&client_addr
diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 4f163d96799cd88bba096d23c3c40ec01ff63c52..a0d543c113aeff371db68074590106dd860e886d 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -3765,10 +3765,12 @@ void DLLCALL bbs_thread(void* arg)
 
 		bool rlogin = false;
 
-		if(FD_ISSET(telnet_socket,&socket_set)) 
+		if(telnet_socket!=INVALID_SOCKET 
+			&& FD_ISSET(telnet_socket,&socket_set)) 
 			client_socket = accept_socket(telnet_socket, (struct sockaddr *)&client_addr
 	        	,&client_addr_len);
-		else if(rlogin_socket!=INVALID_SOCKET && FD_ISSET(rlogin_socket,&socket_set)) {
+		else if(rlogin_socket!=INVALID_SOCKET 
+			&& FD_ISSET(rlogin_socket,&socket_set)) {
 			client_socket = accept_socket(rlogin_socket, (struct sockaddr *)&client_addr
 	        	,&client_addr_len);
 			rlogin = true;
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 673000ab6bb618b2ed8918a52010a6d889671290..b0bd719de2377ffda84d3965f0525b65eda91293 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -2346,7 +2346,8 @@ void DLLCALL web_server(void* arg)
 
 			client_addr_len = sizeof(client_addr);
 
-			if(FD_ISSET(server_socket,&socket_set)) 
+			if(server_socket!=INVALID_SOCKET
+				&& FD_ISSET(server_socket,&socket_set)) 
 				client_socket = accept(server_socket, (struct sockaddr *)&client_addr
 	        		,&client_addr_len);
 			else {