Index: /trunk/src/VBox/Devices/Input/PS2K.cpp
===================================================================
--- /trunk/src/VBox/Devices/Input/PS2K.cpp	(revision 40366)
+++ /trunk/src/VBox/Devices/Input/PS2K.cpp	(revision 40367)
@@ -841,8 +841,10 @@
 
     /* Anything in the command queue has priority over data
-     * in the keystroke queue.
+     * in the keystroke queue. Additionally, keystrokes are 
+     * blocked if a command is currently in progress, even if 
+     * the command queue is empty. 
      */
     rc = PS2RemoveQueue((GeneriQ *)&pThis->cmdQ, pVal);
-    if (rc != VINF_SUCCESS && pThis->fScanning)
+    if (rc != VINF_SUCCESS && !pThis->u8CurrCmd && pThis->fScanning)
         rc = PS2RemoveQueue((GeneriQ *)&pThis->keyQ, pVal);
 
