diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index b0d3c69a96fea4bd392cdea1290cc760a73b0ac9..a8e490561c3394e30e3763916022544316a82a3f 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -985,6 +985,7 @@ void DLLCALL services_thread(void* arg)
 	time_t			initialized;
 	fd_set			socket_set;
 	SOCKET			high_socket;
+	ulong			total_sockets;
 	struct timeval	tv;
 	service_client_t* client;
 
@@ -1083,6 +1084,7 @@ void DLLCALL services_thread(void* arg)
 		}
 
 		/* Open and Bind Listening Sockets */
+		total_sockets=0;
 		for(i=0;i<(int)services;i++) {
 
 			service[i].socket=INVALID_SOCKET;
@@ -1116,6 +1118,13 @@ void DLLCALL services_thread(void* arg)
 				continue;
 			}
 			service[i].socket=socket;
+			total_sockets++;
+		}
+
+		if(!total_sockets) {
+			lprintf("0000 !No service sockets bound");
+			cleanup(1);
+			return;
 		}
 
 		if(startup->setuid!=NULL)