Index: /trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp	(revision 31259)
+++ /trunk/src/VBox/Frontends/VBoxHeadless/VBoxHeadless.cpp	(revision 31260)
@@ -1076,4 +1076,21 @@
 
         /* wait for result because there can be errors */
+        /** @todo The error handling here is kind of peculiar, anyone care
+         *        to comment why this works just fine? */
+        for (;;)
+        {
+            rc = progress->WaitForCompletion(500);
+            if (FAILED(rc))
+                break;
+
+            /* Processing events is vital for teleportation targets. */
+            gEventQ->processEventQueue(0);
+
+            BOOL fCompleted;
+            rc = progress->COMGETTER(Completed)(&fCompleted);
+            if (FAILED(rc) || fCompleted)
+                break;
+        }
+
         if (SUCCEEDED(progress->WaitForCompletion(-1)))
         {
