diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index cbef31873cf46dcb203d8cd437a5a9d5f4fe554f..3361d8741041fec5be0effc96f80c0d44ab7fa63 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -1553,6 +1553,8 @@ void DLLCALL services_thread(void* arg)
 								,service[i].socket, service[i].protocol, ERROR_VALUE);
 						break;
 					}
+					if(startup->socket_open!=NULL)
+						startup->socket_open(TRUE);	/* Callback, increments socket counter */
 				}
 				strcpy(host_ip,inet_ntoa(client_addr.sin_addr));
 
@@ -1592,9 +1594,6 @@ void DLLCALL services_thread(void* arg)
 					continue;
 				}
 
-				if(startup->socket_open!=NULL)
-					startup->socket_open(TRUE);	/* Callback */
-
 				memset(client,0,sizeof(service_client_t));
 				client->socket=client_socket;
 				client->addr=client_addr;