diff --git a/exec/ircd.js b/exec/ircd.js
index 4765a53ad9e9bd62cff442f971fc12cf602b16a9..beca66b11ce238de76b1a9f10d3fee76eb78e466 100644
--- a/exec/ircd.js
+++ b/exec/ircd.js
@@ -253,7 +253,7 @@ while (!server.terminated) {
 	}
 
 	// do some work.
-	if (this.socket_select!=undefined) {
+	if (Selectable_Sockets.length) {
 		var readme = socket_select(Selectable_Sockets, 1 /*secs*/);
 		try {
 			for(thisPolled in readme) {
@@ -280,6 +280,8 @@ while (!server.terminated) {
 				+ Global_CommandLine);
 			terminate_everything("A fatal error occured!", /* ERROR? */true);
 		}
+	} else {
+		mswait(1000);
 	}
 
 	// Scan C:Lines for servers to connect to automatically.