Index: code/parse/sexp.cpp
===================================================================
--- code/parse/sexp.cpp
+++ code/parse/sexp.cpp
@@ -12650,10 +12650,15 @@ int sexp_event_delay_status( int n, int want_true, bool use_msecs = false)
 		return SEXP_FALSE;
 	}
 
-	delay = i2f(eval_num(CDR(n)));
+	uint64_t tempDelay = eval_num(CDR(n));
 
 	if (use_msecs) {
-		delay = delay / 1000l;
+		tempDelay = tempDelay << 16;
+		tempDelay = tempDelay / 1000;
+
+		delay = (fix) tempDelay;
+	} else {
+		delay = i2f(tempDelay);
 	}
 
 	for (i = 0; i < Num_mission_events; i++ ) {
