diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 11b2a0f3322f024565dd30242378cf2cd2dd0832..a73c1618fdd2282bdadafbf747b0d29d830a3738 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -867,6 +867,9 @@ void event_thread(void* arg)
 
 	sbbs->event_thread_running = true;
 
+	srand(clock());		/* Seed random number generator */
+	sbbs_random(10);	/* Throw away first number */
+
 	thread_up();
 
 #ifdef JAVASCRIPT
@@ -2503,6 +2506,9 @@ void node_thread(void* arg)
 	update_clients();
 	thread_up();
 
+	srand(clock());		/* Seed random number generator */
+	sbbs_random(10);	/* Throw away first number */
+
 #ifdef JAVASCRIPT
 	sbbs->js_initcx();	/* This must be done in the context of the node thread */
 #endif
@@ -2952,8 +2958,6 @@ void DLLCALL bbs_thread(void* arg)
 		return;
 	}
 
-	srand(time(NULL));
-
 	if(!(startup->options&BBS_OPT_LOCAL_TIMEZONE)) {
 		if(PUTENV("TZ=UCT0"))
 			lprintf("!putenv() FAILED");