Index: /trunk/src/VBox/Main/glue/NativeEventQueue.cpp
===================================================================
--- /trunk/src/VBox/Main/glue/NativeEventQueue.cpp	(revision 58577)
+++ /trunk/src/VBox/Main/glue/NativeEventQueue.cpp	(revision 58578)
@@ -521,12 +521,15 @@
         /** @todo check how Ctrl-C works on Darwin. */
         rc = waitForEventsOnDarwin(cMsTimeout);
-        if (rc == VERR_TIMEOUT)
-            rc = processPendingEvents(mEventQ);
 # else // !RT_OS_DARWIN
         rc = waitForEventsOnXPCOM(mEventQ, cMsTimeout);
+# endif // !RT_OS_DARWIN
         if (    RT_SUCCESS(rc)
             ||  rc == VERR_TIMEOUT)
-            rc = processPendingEvents(mEventQ);
-# endif // !RT_OS_DARWIN
+        {
+            int rc2 = processPendingEvents(mEventQ);
+            /* If the wait was successful don't fail the whole operation. */
+            if (RT_FAILURE(rc) && RT_FAILURE(rc2))
+                rc = rc2;
+        }
     }
 
