Index: /trunk/src/VBox/Main/ConsoleImplTeleporter.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImplTeleporter.cpp	(revision 29881)
+++ /trunk/src/VBox/Main/ConsoleImplTeleporter.cpp	(revision 29882)
@@ -989,4 +989,6 @@
 Console::teleporterTrg(PVM pVM, IMachine *pMachine, bool fStartPaused, Progress *pProgress)
 {
+    LogThisFunc(("pVM=%p pMachine=%p fStartPaused=%RTbool pProgress=%p\n", pVM, pMachine, fStartPaused, pProgress));
+
     /*
      * Get the config.
@@ -1058,4 +1060,5 @@
             theState.mhServer          = hServer;
 
+            bool fPowerOff;
             void *pvUser = static_cast<void *>(static_cast<TeleporterState *>(&theState));
             if (pProgress->setCancelCallback(teleporterProgressCancelCallback, pvUser))
@@ -1065,5 +1068,5 @@
                 pProgress->setCancelCallback(NULL, NULL);
 
-                bool fPowerOff = false;
+                fPowerOff = false;
                 if (vrc == VERR_TCP_SERVER_STOP)
                 {
@@ -1102,13 +1105,17 @@
                     fPowerOff = true;
                 }
-
-                if (fPowerOff)
-                {
-                    int vrc2 = VMR3PowerOff(pVM);
-                    AssertRC(vrc2);
-                }
             }
             else
+            {
+                LogThisFunc(("Canceled - check point #1\n"));
                 vrc = VERR_SSM_CANCELLED;
+                fPowerOff = true;
+            }
+
+            if (fPowerOff)
+            {
+                int vrc2 = VMR3PowerOff(pVM);
+                AssertRC(vrc2);
+            }
         }
 
