Index: /trunk/src/VBox/Devices/Serial/DrvChar.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DrvChar.cpp	(revision 37101)
+++ /trunk/src/VBox/Devices/Serial/DrvChar.cpp	(revision 37102)
@@ -174,5 +174,8 @@
             /* Normal case, just means that the stream didn't accept a new
              * character before the timeout elapsed. Just retry. */
-            rc = VINF_SUCCESS;
+
+            /* do not change the rc status here, otherwise the (rc == VERR_TIMEOUT) branch
+             * in the wait above will never get executed */
+            /* rc = VINF_SUCCESS; */
         }
         else
