Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp	(revision 90893)
@@ -2594,9 +2594,6 @@
 }
 
-bool UICommon::restoreCurrentSnapshot(const QUuid &uMachineId)
-{
-    /* Prepare result: */
-    bool fResult = false;
-
+void UICommon::restoreCurrentSnapshot(const QUuid &uMachineId)
+{
     /* Open a session to modify VM: */
     const bool fDirectSessionAvailable = (m_enmType == UIType_RuntimeUI) && isSeparateProcess();
@@ -2654,7 +2651,4 @@
                 break;
             }
-
-            /* Success: */
-            fResult = true;
         }
         while (0);
@@ -2663,7 +2657,4 @@
         comSession.UnlockMachine();
     }
-
-    /* Return result: */
-    return fResult;
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h	(revision 90893)
@@ -520,5 +520,5 @@
 
         /** Restores current snapshot for machine with certain @a uMachineId. */
-        bool restoreCurrentSnapshot(const QUuid &uMachineId);
+        void restoreCurrentSnapshot(const QUuid &uMachineId);
     /** @} */
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 90893)
@@ -1027,5 +1027,5 @@
 }
 
-void UIMessageCenter::cannotPowerDownMachine(const CConsole &comConsole) const
+void UIMessageCenter::cannotPowerOffMachine(const CConsole &comConsole) const
 {
     error(0, MessageType_Error,
@@ -1035,5 +1035,5 @@
 }
 
-void UIMessageCenter::cannotPowerDownMachine(const CProgress &comProgress, const QString &strMachineName) const
+void UIMessageCenter::cannotPowerOffMachine(const CProgress &comProgress, const QString &strMachineName) const
 {
     error(0, MessageType_Error,
@@ -2625,6 +2625,6 @@
     if (fFatal)
     {
-        /* Power down after a fFatal error: */
-        LogRel(("GUI: Powering VM down after a fatal runtime error...\n"));
+        /* Power off after a fFatal error: */
+        LogRel(("GUI: Powering VM off after a fatal runtime error...\n"));
         console1.PowerDown();
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 90893)
@@ -310,6 +310,6 @@
     void cannotPowerUpCloudMachine(const CCloudMachine &comMachine) const;
     void cannotPowerUpCloudMachine(const CProgress &comProgress, const QString &strMachineName) const;
-    void cannotPowerDownMachine(const CConsole &comConsole) const;
-    void cannotPowerDownMachine(const CProgress &comProgress, const QString &strMachineName) const;
+    void cannotPowerOffMachine(const CConsole &comConsole) const;
+    void cannotPowerOffMachine(const CProgress &comProgress, const QString &strMachineName) const;
     void cannotPowerDownCloudMachine(const CCloudMachine &comMachine) const;
     void cannotPowerDownCloudMachine(const CProgress &comProgress, const QString &strMachineName) const;
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 90893)
@@ -1819,7 +1819,7 @@
         if (pItem->itemType() == UIVirtualMachineItemType_Local)
         {
-            /* Powering VM down: */
-            UINotificationProgressMachinePowerDown *pNotification =
-                new UINotificationProgressMachinePowerDown(pItem->toLocal()->machine());
+            /* Powering VM off: */
+            UINotificationProgressMachinePowerOff *pNotification =
+                new UINotificationProgressMachinePowerOff(pItem->toLocal()->machine());
             gpNotificationCenter->append(pNotification);
         }
@@ -1827,7 +1827,7 @@
         else if (pItem->itemType() == UIVirtualMachineItemType_CloudReal)
         {
-            /* Powering cloud VM down: */
-            UINotificationProgressCloudMachinePowerDown *pNotification =
-                new UINotificationProgressCloudMachinePowerDown(pItem->toCloud()->machine());
+            /* Powering cloud VM off: */
+            UINotificationProgressCloudMachinePowerOff *pNotification =
+                new UINotificationProgressCloudMachinePowerOff(pItem->toCloud()->machine());
             gpNotificationCenter->append(pNotification);
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90893)
@@ -973,32 +973,32 @@
 
 /*********************************************************************************************************************************
-*   Class UINotificationProgressMachinePowerDown implementation.                                                                 *
-*********************************************************************************************************************************/
-
-UINotificationProgressMachinePowerDown::UINotificationProgressMachinePowerDown(const CMachine &comMachine)
+*   Class UINotificationProgressMachinePowerOff implementation.                                                                  *
+*********************************************************************************************************************************/
+
+UINotificationProgressMachinePowerOff::UINotificationProgressMachinePowerOff(const CMachine &comMachine)
     : m_comMachine(comMachine)
 {
     connect(this, &UINotificationProgress::sigProgressFinished,
-            this, &UINotificationProgressMachinePowerDown::sltHandleProgressFinished);
-}
-
-UINotificationProgressMachinePowerDown::UINotificationProgressMachinePowerDown(const CConsole &comConsole)
+            this, &UINotificationProgressMachinePowerOff::sltHandleProgressFinished);
+}
+
+UINotificationProgressMachinePowerOff::UINotificationProgressMachinePowerOff(const CConsole &comConsole)
     : m_comConsole(comConsole)
 {
     connect(this, &UINotificationProgress::sigProgressFinished,
-            this, &UINotificationProgressMachinePowerDown::sltHandleProgressFinished);
-}
-
-QString UINotificationProgressMachinePowerDown::name() const
-{
-    return UINotificationProgress::tr("Powering VM down ...");
-}
-
-QString UINotificationProgressMachinePowerDown::details() const
+            this, &UINotificationProgressMachinePowerOff::sltHandleProgressFinished);
+}
+
+QString UINotificationProgressMachinePowerOff::name() const
+{
+    return UINotificationProgress::tr("Powering VM off ...");
+}
+
+QString UINotificationProgressMachinePowerOff::details() const
 {
     return UINotificationProgress::tr("<b>VM Name:</b> %1").arg(m_strName);
 }
 
-CProgress UINotificationProgressMachinePowerDown::createProgress(COMResult &comResult)
+CProgress UINotificationProgressMachinePowerOff::createProgress(COMResult &comResult)
 {
     /* Prepare machine to power off: */
@@ -1086,5 +1086,5 @@
 }
 
-void UINotificationProgressMachinePowerDown::sltHandleProgressFinished()
+void UINotificationProgressMachinePowerOff::sltHandleProgressFinished()
 {
     /* Unlock session finally: */
@@ -1337,23 +1337,23 @@
 
 /*********************************************************************************************************************************
-*   Class UINotificationProgressCloudMachinePowerDown implementation.                                                            *
-*********************************************************************************************************************************/
-
-UINotificationProgressCloudMachinePowerDown::UINotificationProgressCloudMachinePowerDown(const CCloudMachine &comMachine)
+*   Class UINotificationProgressCloudMachinePowerOff implementation.                                                             *
+*********************************************************************************************************************************/
+
+UINotificationProgressCloudMachinePowerOff::UINotificationProgressCloudMachinePowerOff(const CCloudMachine &comMachine)
     : m_comMachine(comMachine)
 {
 }
 
-QString UINotificationProgressCloudMachinePowerDown::name() const
-{
-    return   UINotificationProgress::tr("Powering cloud VM down ...");
-}
-
-QString UINotificationProgressCloudMachinePowerDown::details() const
+QString UINotificationProgressCloudMachinePowerOff::name() const
+{
+    return   UINotificationProgress::tr("Powering cloud VM off ...");
+}
+
+QString UINotificationProgressCloudMachinePowerOff::details() const
 {
     return UINotificationProgress::tr("<b>VM Name:</b> %1").arg(m_strName);
 }
 
-CProgress UINotificationProgressCloudMachinePowerDown::createProgress(COMResult &comResult)
+CProgress UINotificationProgressCloudMachinePowerOff::createProgress(COMResult &comResult)
 {
     /* Acquire cloud VM name: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90893)
@@ -559,17 +559,17 @@
 };
 
-/** UINotificationProgress extension for machine power-down functionality. */
-class SHARED_LIBRARY_STUFF UINotificationProgressMachinePowerDown : public UINotificationProgress
-{
-    Q_OBJECT;
-
-public:
-
-    /** Constructs machine power-down notification-progress.
+/** UINotificationProgress extension for machine power-off functionality. */
+class SHARED_LIBRARY_STUFF UINotificationProgressMachinePowerOff : public UINotificationProgress
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs machine power-off notification-progress.
       * @param  comMachine  Brings the machine being powered off. */
-    UINotificationProgressMachinePowerDown(const CMachine &comMachine);
-    /** Constructs machine power-down notification-progress.
+    UINotificationProgressMachinePowerOff(const CMachine &comMachine);
+    /** Constructs machine power-off notification-progress.
       * @param  comConsole  Brings the console of machine being powered off. */
-    UINotificationProgressMachinePowerDown(const CConsole &comConsole);
+    UINotificationProgressMachinePowerOff(const CConsole &comConsole);
 
 protected:
@@ -826,27 +826,27 @@
 };
 
-/** UINotificationProgress extension for cloud machine power-down functionality. */
-class SHARED_LIBRARY_STUFF UINotificationProgressCloudMachinePowerDown : public UINotificationProgress
-{
-    Q_OBJECT;
-
-public:
-
-    /** Constructs cloud machine power-down notification-progress.
-      * @param  comMachine  Brings the machine being powered-down. */
-    UINotificationProgressCloudMachinePowerDown(const CCloudMachine &comMachine);
-
-protected:
-
-    /** Returns object name. */
-    virtual QString name() const /* override final */;
-    /** Returns object details. */
-    virtual QString details() const /* override final */;
-    /** Creates and returns started progress-wrapper. */
-    virtual CProgress createProgress(COMResult &comResult) /* override final */;
-
-private:
-
-    /** Holds the machine being powered-down. */
+/** UINotificationProgress extension for cloud machine power-off functionality. */
+class SHARED_LIBRARY_STUFF UINotificationProgressCloudMachinePowerOff : public UINotificationProgress
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs cloud machine power-off notification-progress.
+      * @param  comMachine  Brings the machine being powered-off. */
+    UINotificationProgressCloudMachinePowerOff(const CCloudMachine &comMachine);
+
+protected:
+
+    /** Returns object name. */
+    virtual QString name() const /* override final */;
+    /** Returns object details. */
+    virtual QString details() const /* override final */;
+    /** Creates and returns started progress-wrapper. */
+    virtual CProgress createProgress(COMResult &comResult) /* override final */;
+
+private:
+
+    /** Holds the machine being powered-off. */
     CCloudMachine  m_comMachine;
     /** Holds the machine name. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 90893)
@@ -386,25 +386,4 @@
 #endif /* VBOX_WS_MAC */
 
-void UIMachineLogic::powerOff(bool fDiscardingState)
-{
-    /* Enable 'manual-override',
-     * preventing automatic Runtime UI closing: */
-    uisession()->setManualOverrideMode(true);
-
-    /* Was the step successful? */
-    bool fSuccess = true;
-    /* Power-off: */
-    bool fServerCrashed = false;
-    LogRel(("GUI: Passing request to power VM off from machine-logic to UI session.\n"));
-    fSuccess = uisession()->powerOff(fDiscardingState, fServerCrashed) || fServerCrashed;
-
-    /* Disable 'manual-override' finally: */
-    uisession()->setManualOverrideMode(false);
-
-    /* Manually close Runtime UI: */
-    if (fSuccess)
-        uisession()->closeRuntimeUI();
-}
-
 void UIMachineLogic::notifyAbout3DOverlayVisibilityChange(bool fVisible)
 {
@@ -433,5 +412,5 @@
     /* Power VM off: */
     LogRel(("GUI: Request to power VM off due to VBoxSVC is unavailable.\n"));
-    powerOff(false /* do NOT restore current snapshot */);
+    uisession()->powerOff(false /* do NOT restore current snapshot */);
 }
 
@@ -488,6 +467,6 @@
                     if (msgCenter().remindAboutGuruMeditation(QDir::toNativeSeparators(strLogFolder)))
                     {
-                        LogRel(("GUI: User request to power VM off on Guru Meditation.\n"));
-                        powerOff(false /* do NOT restore current snapshot */);
+                        LogRel(("GUI: User requested to power VM off on Guru Meditation.\n"));
+                        uisession()->powerOff(false /* do NOT restore current snapshot */);
                     }
                     break;
@@ -497,5 +476,5 @@
                 {
                     LogRel(("GUI: Automatic request to power VM off on Guru Meditation.\n"));
-                    powerOff(false /* do NOT restore current snapshot */);
+                    uisession()->powerOff(false /* do NOT restore current snapshot */);
                     break;
                 }
@@ -1885,5 +1864,5 @@
     LogRel(("GUI: User requested to power VM off.\n"));
     const bool fDiscardStateOnPowerOff = gEDataManager->discardStateOnPowerOff(uiCommon().managedVMUuid());
-    powerOff(machine().GetSnapshotCount() > 0 && fDiscardStateOnPowerOff);
+    uisession()->powerOff(machine().GetSnapshotCount() > 0 && fDiscardStateOnPowerOff);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 90893)
@@ -142,7 +142,4 @@
     virtual void updateDock();
 #endif /* VBOX_WS_MAC */
-
-    /** Power off VM, then close Runtime UI. */
-    void powerOff(bool fDiscardingState);
 
     /* API: 3D overlay visibility stuff: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineWindow.cpp	(revision 90893)
@@ -470,5 +470,5 @@
             LogRel(("GUI: Request for close-action to power VM off.\n"));
             const bool fDiscardStateOnPowerOff = gEDataManager->discardStateOnPowerOff(uiCommon().managedVMUuid());
-            machineLogic()->powerOff(machine().GetSnapshotCount() > 0 && fDiscardStateOnPowerOff);
+            uisession()->powerOff(machine().GetSnapshotCount() > 0 && fDiscardStateOnPowerOff);
             break;
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 90893)
@@ -369,43 +369,52 @@
 }
 
-bool UISession::powerOff(bool fIncludingDiscard, bool &fServerCrashed)
-{
+void UISession::powerOff(bool fIncludingDiscard)
+{
+    /* Prepare result: */
+    bool fSuccess = false;
+
+    /* Enable 'manual-override',
+     * preventing automatic Runtime UI closing: */
+    setManualOverrideMode(true);
+
     /* Prepare the power-off progress: */
-    LogRel(("GUI: Powering VM down on UI session power off request...\n"));
-    CProgress progress = console().PowerDown();
-    if (console().isOk())
+    LogRel(("GUI: Powering VM off..\n"));
+    CProgress comProgress = console().PowerDown();
+    if (!console().isOk())
+    {
+        /* Check the console state, it might be already gone: */
+        if (!console().isNull())
+        {
+            /* This can happen if VBoxSVC is not running: */
+            COMResult res(console());
+            if (FAILED_DEAD_INTERFACE(res.rc()))
+               fSuccess = true;
+        }
+
+        if (!fSuccess)
+            msgCenter().cannotPowerOffMachine(console());
+    }
+    else
     {
         /* Show the power-off progress: */
-        msgCenter().showModalProgressDialog(progress, machineName(), ":/progress_poweroff_90px.png");
-        if (progress.isOk() && progress.GetResultCode() == 0)
-        {
+        msgCenter().showModalProgressDialog(comProgress, machineName(), ":/progress_poweroff_90px.png");
+        if (comProgress.isOk() && comProgress.GetResultCode() == 0)
+        {
+            fSuccess = true;
+
             /* Discard the current state if requested: */
             if (fIncludingDiscard)
-                return uiCommon().restoreCurrentSnapshot(uiCommon().managedVMUuid());
+                uiCommon().restoreCurrentSnapshot(uiCommon().managedVMUuid());
         }
         else
-        {
-            /* Failed in progress: */
-            msgCenter().cannotPowerDownMachine(progress, machineName());
-            return false;
-        }
-    }
-    else
-    {
-        /* Check the machine state, it might be already gone: */
-        if (!console().isNull())
-        {
-           /* Failed in console: */
-           COMResult res(console());
-           /* This can happen if VBoxSVC is not running: */
-           if (FAILED_DEAD_INTERFACE(res.rc()))
-               fServerCrashed = true;
-           else
-               msgCenter().cannotPowerDownMachine(console());
-           return false;
-        }
-    }
-    /* Passed: */
-    return true;
+            msgCenter().cannotPowerOffMachine(comProgress, machineName());
+    }
+
+    /* Disable 'manual-override' finally: */
+    setManualOverrideMode(false);
+
+    /* Manually close Runtime UI: */
+    if (fSuccess)
+        closeRuntimeUI();
 }
 
@@ -1960,7 +1969,6 @@
             setManualOverrideMode(true);
             /* Power off VM: */
-            bool fServerCrashed = false;
             LogRel(("GUI: Aborting startup due to postprocess initialization issue detected...\n"));
-            powerOff(false /* do NOT restore current snapshot */, fServerCrashed);
+            powerOff(false /* do NOT restore current snapshot */);
             return false;
         }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 90892)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.h	(revision 90893)
@@ -83,6 +83,6 @@
     /** Calls for guest shutdown to close Runtime UI. */
     void shutdown();
-    /** Powers VM down, then closes Runtime UI. */
-    bool powerOff(bool fIncludingDiscard, bool &fServerCrashed);
+    /** Powers VM off, then closes Runtime UI. */
+    void powerOff(bool fIncludingDiscard);
 
     /** Returns the session instance. */
