diff --git a/rts/win32/AwaitEvent.c b/rts/win32/AwaitEvent.c
index 2175626313f340442faab559908b953b7c382a2d..1b92c4386f483807721439d3e018671c2c15a5d4 100644
--- a/rts/win32/AwaitEvent.c
+++ b/rts/win32/AwaitEvent.c
@@ -45,14 +45,11 @@ awaitEvent(rtsBool wait)
         return;
     }
 
-    if (!ret) { 
-      return; /* still hold the lock */
-    }
-
-    // Return to the scheduler if:
+    // The return value from awaitRequests() is a red herring: ignore
+    // it.  Return to the scheduler if !wait, or
     //
     //  - we were interrupted
-    //  - new threads have arrived
+    //  - the run-queue is now non- empty
 
   } while (wait
 	   && sched_state == SCHED_RUNNING