Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 45325)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 45328)
@@ -633,5 +633,5 @@
 }
 
-bool UIMessageCenter::confirmVMReset(const QString &strNames) const
+bool UIMessageCenter::confirmResetMachine(const QString &strNames) const
 {
     return messageOkCancel(mainWindowShown(), MessageType_Question,
@@ -640,9 +640,9 @@
                               "in applications running inside it to be lost.</p>")
                               .arg(strNames),
-                           "confirmVMReset" /* auto-confirm id */,
+                           "confirmResetMachine" /* auto-confirm id */,
                            tr("Reset", "machine"));
 }
 
-bool UIMessageCenter::confirmVMACPIShutdown(const QString &strNames) const
+bool UIMessageCenter::confirmACPIShutdownMachine(const QString &strNames) const
 {
     return messageOkCancel(mainWindowShown(), MessageType_Question,
@@ -650,9 +650,9 @@
                               "to the following virtual machines?</p><p><b>%1</b></p>")
                               .arg(strNames),
-                           "confirmVMACPIShutdown" /* auto-confirm id */,
+                           "confirmACPIShutdownMachine" /* auto-confirm id */,
                            tr("ACPI Shutdown", "machine"));
 }
 
-bool UIMessageCenter::confirmVMPowerOff(const QString &strNames) const
+bool UIMessageCenter::confirmPowerOffMachine(const QString &strNames) const
 {
     return messageOkCancel(mainWindowShown(), MessageType_Question,
@@ -661,6 +661,28 @@
                               "running inside it to be lost.</p>")
                               .arg(strNames),
-                           "confirmVMPowerOff" /* auto-confirm id */,
+                           "confirmPowerOffMachine" /* auto-confirm id */,
                            tr("Power Off", "machine"));
+}
+
+void UIMessageCenter::cannotPauseMachine(const CConsole &console) const
+{
+    /* Preserve error-info: */
+    COMResult res(console);
+    /* Show the message: */
+    message(mainWindowShown(), MessageType_Error,
+            tr("Failed to pause the execution of the virtual machine <b>%1</b>.")
+               .arg(console.GetMachine().GetName()),
+            formatErrorInfo(res));
+}
+
+void UIMessageCenter::cannotResumeMachine(const CConsole &console) const
+{
+    /* Preserve error-info: */
+    COMResult res(console);
+    /* Show the message: */
+    message(mainWindowShown(), MessageType_Error,
+            tr("Failed to resume the execution of the virtual machine <b>%1</b>.")
+               .arg(console.GetMachine().GetName()),
+            formatErrorInfo(res));
 }
 
@@ -676,5 +698,36 @@
 }
 
-void UIMessageCenter::cannotStopMachine(const CConsole &console) const
+void UIMessageCenter::cannotSaveMachineState(const CConsole &console)
+{
+    /* Preserve error-info: */
+    COMResult res(console);
+    /* Show the message: */
+    message(mainWindowShown(), MessageType_Error,
+            tr("Failed to save the state of the virtual machine <b>%1</b>.")
+               .arg(console.GetMachine().GetName()),
+            formatErrorInfo(res));
+}
+
+void UIMessageCenter::cannotSaveMachineState(const CProgress &progress, const QString &strName)
+{
+    message(mainWindowShown(), MessageType_Error,
+            tr("Failed to save the state of the virtual machine <b>%1</b>.")
+               .arg(strName),
+            !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+}
+
+void UIMessageCenter::cannotACPIShutdownMachine(const CConsole &console) const
+{
+    /* Preserve error-info: */
+    COMResult res(console);
+    /* Show the message: */
+    message(mainWindowShown(), MessageType_Error,
+            tr("Failed to send the ACPI Power Button press event to the "
+               "virtual machine <b>%1</b>.")
+               .arg(console.GetMachine().GetName()),
+            formatErrorInfo(res));
+}
+
+void UIMessageCenter::cannotPowerDownMachine(const CConsole &console) const
 {
     /* Preserve error-info: */
@@ -685,4 +738,12 @@
                .arg(console.GetMachine().GetName()),
             formatErrorInfo(res));
+}
+
+void UIMessageCenter::cannotPowerDownMachine(const CProgress &progress, const QString &strName) const
+{
+    message(mainWindowShown(), MessageType_Error,
+            tr("Failed to stop the virtual machine <b>%1</b>.")
+                .arg(strName),
+            !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
 }
 
@@ -742,4 +803,20 @@
 }
 
+void UIMessageCenter::cannotTakeSnapshot(const CConsole &console, const QString &strMachineName, QWidget *pParent /*= 0*/) const
+{
+    message(pParent ? pParent : mainWindowShown(), MessageType_Error,
+            tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
+               .arg(strMachineName),
+            formatErrorInfo(console));
+}
+
+void UIMessageCenter::cannotTakeSnapshot(const CProgress &progress, const QString &strMachineName, QWidget *pParent /*= 0*/) const
+{
+    message(pParent ? pParent : mainWindowShown(), MessageType_Error,
+            tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
+               .arg(strMachineName),
+            !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+}
+
 void UIMessageCenter::cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent /*= 0*/) const
 {
@@ -1387,10 +1464,10 @@
 }
 
-void UIMessageCenter::showRuntimeError(const CConsole &console, bool fFatal,
-                                       const QString &strErrorId,
-                                       const QString &strErrorMsg) const
-{
+void UIMessageCenter::showRuntimeError(const CConsole &console, bool fFatal, const QString &strErrorId, const QString &strErrorMsg) const
+{
+    /* Prepare auto-confirm id: */
     QByteArray autoConfimId = "showRuntimeError.";
 
+    /* Prepare variables: */
     CConsole console1 = console;
     KMachineState state = console1.GetState();
@@ -1398,10 +1475,17 @@
     QString severity;
 
+    // TODO: Move to Runtime UI!
+    /* Preprocessing: */
     if (fFatal)
     {
-        /* the machine must be paused on fFatal errors */
+        /* The machine must be paused on fFatal errors: */
         Assert(state == KMachineState_Paused);
         if (state != KMachineState_Paused)
             console1.Pause();
+    }
+
+    /* Compose type, severity, advance confirm id: */
+    if (fFatal)
+    {
         type = MessageType_Critical;
         severity = tr("<nobr>Fatal Error</nobr>", "runtime error info");
@@ -1420,12 +1504,11 @@
         autoConfimId += "warning.";
     }
-
+    /* Advance auto-confirm id: */
     autoConfimId += strErrorId.toUtf8();
 
+    /* Format error-details: */
     QString formatted("<!--EOM-->");
-
     if (!strErrorMsg.isEmpty())
         formatted.prepend(QString("<p>%1.</p>").arg(vboxGlobal().emphasize(strErrorMsg)));
-
     if (!strErrorId.isEmpty())
         formatted += QString("<table bgcolor=#EEEEEE border=0 cellspacing=0 "
@@ -1434,231 +1517,106 @@
                              "<tr><td>%3</td><td>%4</td></tr>"
                              "</table>")
-                              .arg(tr("<nobr>Error ID: </nobr>", "runtime error info"),
-                                    strErrorId)
-                              .arg(tr("Severity: ", "runtime error info"),
-                                    severity);
-
+                             .arg(tr("<nobr>Error ID: </nobr>", "runtime error info"), strErrorId)
+                             .arg(tr("Severity: ", "runtime error info"), severity);
     if (!formatted.isEmpty())
         formatted = "<qt>" + formatted + "</qt>";
 
-    int rc = 0;
-
+    /* Show the message: */
     if (type == MessageType_Critical)
     {
-        rc = message(mainMachineWindowShown(), type,
-            tr("<p>A fatal error has occurred during virtual machine execution! "
-               "The virtual machine will be powered off. Please copy the "
-               "following error message using the clipboard to help diagnose "
-               "the problem:</p>"),
-            formatted, autoConfimId.data());
-
-        /* always power down after a fFatal error */
+        message(mainMachineWindowShown(), type,
+                tr("<p>A fatal error has occurred during virtual machine execution! "
+                   "The virtual machine will be powered off. Please copy the following error message "
+                   "using the clipboard to help diagnose the problem:</p>"),
+                formatted, autoConfimId.data());
+    }
+    else if (type == MessageType_Error)
+    {
+        message(mainMachineWindowShown(), type,
+                tr("<p>An error has occurred during virtual machine execution! "
+                   "The error details are shown below. You may try to correct the error "
+                   "and resume the virtual machine execution.</p>"),
+                formatted, autoConfimId.data());
+    }
+    else
+    {
+        message(mainMachineWindowShown(), type,
+                tr("<p>The virtual machine execution may run into an error condition as described below. "
+                   "We suggest that you take an appropriate action to avert the error.</p>"),
+                formatted, autoConfimId.data());
+    }
+
+    // TODO: Move to Runtime UI!
+    /* Postprocessing: */
+    if (fFatal)
+    {
+        /* Power down after a fFatal error: */
         console1.PowerDown();
     }
-    else if (type == MessageType_Error)
-    {
-        rc = message(mainMachineWindowShown(), type,
-            tr("<p>An error has occurred during virtual machine execution! "
-               "The error details are shown below. You may try to correct "
-               "the error and resume the virtual machine "
-               "execution.</p>"),
-            formatted, autoConfimId.data());
-    }
+}
+
+bool UIMessageCenter::warnAboutVirtNotEnabled64BitsGuest(bool fHWVirtExSupported)
+{
+    if (fHWVirtExSupported)
+        return messageOkCancel(mainMachineWindowShown(), MessageType_Error,
+                               tr("<p>VT-x/AMD-V hardware acceleration has been enabled, but is "
+                                  "not operational. Your 64-bit guest will fail to detect a "
+                                  "64-bit CPU and will not be able to boot.</p><p>Please ensure "
+                                  "that you have enabled VT-x/AMD-V properly in the BIOS of your "
+                                  "host computer.</p>"),
+                               0 /* auto-confirm id */,
+                               tr("Close VM"), tr("Continue"));
     else
-    {
-        rc = message(mainMachineWindowShown(), type,
-            tr("<p>The virtual machine execution may run into an error "
-               "condition as described below. "
-               "We suggest that you take "
-               "an appropriate action to avert the error."
-               "</p>"),
-            formatted, autoConfimId.data());
-    }
-
-    NOREF(rc);
-}
-
-bool UIMessageCenter::warnAboutVirtNotEnabled64BitsGuest(bool fHWVirtExSupported)
+        return messageOkCancel(mainMachineWindowShown(), MessageType_Error,
+                               tr("<p>VT-x/AMD-V hardware acceleration is not available on your system. "
+                                  "Your 64-bit guest will fail to detect a 64-bit CPU and will "
+                                  "not be able to boot."),
+                               0 /* auto-confirm id */,
+                               tr("Close VM"), tr("Continue"));
+}
+
+bool UIMessageCenter::warnAboutVirtNotEnabledGuestRequired(bool fHWVirtExSupported)
 {
     if (fHWVirtExSupported)
-        return messageOkCancel(mainWindowShown(), MessageType_Error,
-            tr("<p>VT-x/AMD-V hardware acceleration has been enabled, but is "
-                "not operational. Your 64-bit guest will fail to detect a "
-                "64-bit CPU and will not be able to boot.</p><p>Please ensure "
-                "that you have enabled VT-x/AMD-V properly in the BIOS of your "
-                "host computer.</p>"),
-            0 /* auto-confirm id */,
-            tr("Close VM"), tr("Continue"));
+        return messageOkCancel(mainMachineWindowShown(), MessageType_Error,
+                               tr("<p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. "
+                                  "Certain guests (e.g. OS/2 and QNX) require this feature.</p>"
+                                  "<p>Please ensure that you have enabled VT-x/AMD-V properly in the BIOS of your host computer.</p>"),
+                               0 /* auto-confirm id */,
+                               tr("Close VM"), tr("Continue"));
     else
-        return messageOkCancel(mainWindowShown(), MessageType_Error,
-            tr("<p>VT-x/AMD-V hardware acceleration is not available on your system. "
-                "Your 64-bit guest will fail to detect a 64-bit CPU and will "
-                "not be able to boot."),
-            0 /* auto-confirm id */,
-            tr("Close VM"), tr("Continue"));
-}
-
-bool UIMessageCenter::warnAboutVirtNotEnabledGuestRequired(bool fHWVirtExSupported)
-{
-    if (fHWVirtExSupported)
-        return messageOkCancel(mainWindowShown(), MessageType_Error,
-            tr("<p>VT-x/AMD-V hardware acceleration has been enabled, but is "
-                "not operational. Certain guests (e.g. OS/2 and QNX) require "
-                "this feature.</p><p>Please ensure "
-                "that you have enabled VT-x/AMD-V properly in the BIOS of your "
-                "host computer.</p>"),
-            0 /* auto-confirm id */,
-            tr("Close VM"), tr("Continue"));
-    else
-        return messageOkCancel(mainWindowShown(), MessageType_Error,
-            tr("<p>VT-x/AMD-V hardware acceleration is not available on your system. "
-                "Certain guests (e.g. OS/2 and QNX) require this feature and will "
-                "fail to boot without it.</p>"),
-            0 /* auto-confirm id */,
-            tr("Close VM"), tr("Continue"));
-}
-
-bool UIMessageCenter::cannotStartWithoutNetworkIf(const QString &strMachineName,
-                                                  const QString &strIfNames)
+        return messageOkCancel(mainMachineWindowShown(), MessageType_Error,
+                               tr("<p>VT-x/AMD-V hardware acceleration is not available on your system. "
+                                  "Certain guests (e.g. OS/2 and QNX) require this feature and will fail to boot without it.</p>"),
+                               0 /* auto-confirm id */,
+                               tr("Close VM"), tr("Continue"));
+}
+
+bool UIMessageCenter::cannotStartWithoutNetworkIf(const QString &strMachineName, const QString &strIfNames)
 {
     return messageOkCancel(mainMachineWindowShown(), MessageType_Error,
-             tr("<p>Could not start the machine <b>%1</b> because the "
-                "following physical network interfaces were not found:</p>"
-                "<p><b>%2</b></p>"
-                "<p>You can either change the machine's network "
-                "settings or stop the machine.</p>")
-             .arg(strMachineName)
-             .arg(strIfNames),
-             0 /* auto-confirm id */,
-             tr("Change Network Settings"),
-             tr("Close Virtual Machine"));
-}
-
-void UIMessageCenter::cannotStartMachine(const CConsole &console)
-{
-    /* preserve the current error info before calling the object again */
-    COMResult res(console);
-
-    message(mainWindowShown(), MessageType_Error,
-        tr("Failed to start the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotStartMachine(const CProgress &progress)
-{
-    /* Get console: */
-    AssertWrapperOk(progress);
-    CConsole console(CProgress(progress).GetInitiator());
-    AssertWrapperOk(console);
-    /* Show the message: */
-    message(
-        mainWindowShown(),
-        MessageType_Error,
-        tr("Failed to start the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(progress.GetErrorInfo())
-    );
-}
-
-void UIMessageCenter::cannotPauseMachine(const CConsole &console)
-{
-    /* preserve the current error info before calling the object again */
-    COMResult res(console);
-
-    message(mainWindowShown(), MessageType_Error,
-        tr("Failed to pause the execution of the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotResumeMachine(const CConsole &console)
-{
-    /* preserve the current error info before calling the object again */
-    COMResult res(console);
-
-    message(mainWindowShown(), MessageType_Error,
-        tr("Failed to resume the execution of the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotACPIShutdownMachine(const CConsole &console)
-{
-    /* preserve the current error info before calling the object again */
-    COMResult res(console);
-
-    message(mainWindowShown(), MessageType_Error,
-        tr("Failed to send the ACPI Power Button press event to the "
-            "virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotSaveMachineState(const CConsole &console)
-{
-    /* preserve the current error info before calling the object again */
-    COMResult res(console);
-
-    message(mainWindowShown(), MessageType_Error,
-        tr("Failed to save the state of the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotSaveMachineState(const CProgress &progress)
-{
-    /* Get console: */
-    AssertWrapperOk(progress);
-    CConsole console(CProgress(progress).GetInitiator());
-    AssertWrapperOk(console);
-    /* Show the message: */
-    message(
-        mainWindowShown(),
-        MessageType_Error,
-        tr("Failed to save the state of the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(progress.GetErrorInfo())
-    );
-}
-
-void UIMessageCenter::cannotTakeSnapshot(const CConsole &console)
-{
-    /* preserve the current error info before calling the object again */
-    COMResult res(console);
-
-    message(mainWindowShown(), MessageType_Error,
-        tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotTakeSnapshot(const CProgress &progress)
-{
-    /* Get console: */
-    AssertWrapperOk(progress);
-    CConsole console(CProgress(progress).GetInitiator());
-    AssertWrapperOk(console);
-    /* Show the message: */
-    message(
-        mainWindowShown(),
-        MessageType_Error,
-        tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(progress.GetErrorInfo())
-    );
-}
-
-void UIMessageCenter::cannotStopMachine(const CProgress &progress)
-{
-    /* Get console: */
-    AssertWrapperOk(progress);
-    CConsole console(CProgress(progress).GetInitiator());
-    AssertWrapperOk(console);
-    /* Show the message: */
-    message(mainWindowShown(), MessageType_Error,
-        tr("Failed to stop the virtual machine <b>%1</b>.")
-            .arg(console.GetMachine().GetName()),
-        formatErrorInfo(progress.GetErrorInfo()));
+                           tr("<p>Could not start the machine <b>%1</b> because the following "
+                              "physical network interfaces were not found:</p><p><b>%2</b></p>"
+                              "<p>You can either change the machine's network settings or stop the machine.</p>")
+                              .arg(strMachineName)
+                              .arg(strIfNames),
+                           0 /* auto-confirm id */,
+                           tr("Change Network Settings"), tr("Close VM"));
+}
+
+void UIMessageCenter::cannotStartMachine(const CConsole &console, const QString &strName)
+{
+    message(mainMachineWindowShown(), MessageType_Error,
+            tr("Failed to start the virtual machine <b>%1</b>.")
+               .arg(strName),
+            formatErrorInfo(console));
+}
+
+void UIMessageCenter::cannotStartMachine(const CProgress &progress, const QString &strName)
+{
+    message(mainMachineWindowShown(), MessageType_Error,
+            tr("Failed to start the virtual machine <b>%1</b>.")
+               .arg(strName),
+            !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 45325)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 45328)
@@ -225,9 +225,15 @@
     bool remindAboutInaccessibleMedia() const;
     bool confirmDiscardSavedState(const QString &strNames) const;
-    bool confirmVMReset(const QString &strNames) const;
-    bool confirmVMACPIShutdown(const QString &strNames) const;
-    bool confirmVMPowerOff(const QString &strNames) const;
+    bool confirmResetMachine(const QString &strNames) const;
+    bool confirmACPIShutdownMachine(const QString &strNames) const;
+    bool confirmPowerOffMachine(const QString &strNames) const;
+    void cannotPauseMachine(const CConsole &console) const;
+    void cannotResumeMachine(const CConsole &console) const;
     void cannotDiscardSavedState(const CConsole &console) const;
-    void cannotStopMachine(const CConsole &console) const;
+    void cannotSaveMachineState(const CConsole &console);
+    void cannotSaveMachineState(const CProgress &progress, const QString &strName);
+    void cannotACPIShutdownMachine(const CConsole &console) const;
+    void cannotPowerDownMachine(const CConsole &console) const;
+    void cannotPowerDownMachine(const CProgress &progress, const QString &strName) const;
 
     /* API: Snapshot warnings: */
@@ -236,4 +242,6 @@
     bool warnAboutSnapshotRemovalFreeSpace(const QString &strSnapshotName, const QString &strTargetImageName,
                                            const QString &strTargetImageMaxSize, const QString &strTargetFileSystemFree) const;
+    void cannotTakeSnapshot(const CConsole &console, const QString &strMachineName, QWidget *pParent = 0) const;
+    void cannotTakeSnapshot(const CProgress &progress, const QString &strMachineName, QWidget *pParent = 0) const;
     void cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent = 0) const;
     void cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent = 0) const;
@@ -291,20 +299,10 @@
 
     /* API: Runtime UI warnings: */
-    void showRuntimeError(const CConsole &console, bool fFatal,
-                          const QString &strErrorId,
-                          const QString &strErrorMsg) const;
+    void showRuntimeError(const CConsole &console, bool fFatal, const QString &strErrorId, const QString &strErrorMsg) const;
     bool warnAboutVirtNotEnabled64BitsGuest(bool fHWVirtExSupported);
     bool warnAboutVirtNotEnabledGuestRequired(bool fHWVirtExSupported);
     bool cannotStartWithoutNetworkIf(const QString &strMachineName, const QString &strIfNames);
-    void cannotStartMachine(const CConsole &console);
-    void cannotStartMachine(const CProgress &progress);
-    void cannotPauseMachine(const CConsole &console);
-    void cannotResumeMachine(const CConsole &console);
-    void cannotACPIShutdownMachine(const CConsole &console);
-    void cannotSaveMachineState(const CConsole &console);
-    void cannotSaveMachineState(const CProgress &progress);
-    void cannotTakeSnapshot(const CConsole &console);
-    void cannotTakeSnapshot(const CProgress &progress);
-    void cannotStopMachine(const CProgress &progress);
+    void cannotStartMachine(const CConsole &console, const QString &strName);
+    void cannotStartMachine(const CProgress &progress, const QString &strName);
     void cannotSendACPIToMachine();
     bool confirmInputCapture(bool *pfAutoConfirmed = NULL);
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 45325)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 45328)
@@ -325,5 +325,5 @@
                 console.PowerDown();
                 if (!console.isOk())
-                    msgCenter().cannotStopMachine(console);
+                    msgCenter().cannotPowerDownMachine(console);
             }
             break;
@@ -1025,9 +1025,9 @@
                 /* Show the take-snapshot progress: */
                 msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_snapshot_create_90px.png", activeMachineWindow());
-                if (progress.GetResultCode() != 0)
-                    msgCenter().cannotTakeSnapshot(progress);
+                if (!progress.isOk() || progress.GetResultCode() != 0)
+                    msgCenter().cannotTakeSnapshot(progress, machine.GetName(), activeMachineWindow());
             }
             else
-                msgCenter().cannotTakeSnapshot(console);
+                msgCenter().cannotTakeSnapshot(console, machine.GetName(), activeMachineWindow());
         }
     }
@@ -1125,10 +1125,11 @@
 {
     /* Confirm/Reset current console: */
-    if (msgCenter().confirmVMReset(0))
+    CMachine machine = session().GetMachine();
+    if (msgCenter().confirmResetMachine(machine.GetName()))
         session().GetConsole().Reset();
 
     /* TODO_NEW_CORE: On reset the additional screens didn't get a display
        update. Emulate this for now until it get fixed. */
-    ulong uMonitorCount = session().GetMachine().GetMonitorCount();
+    ulong uMonitorCount = machine.GetMonitorCount();
     for (ulong uScreenId = 1; uScreenId < uMonitorCount; ++uScreenId)
         machineWindows().at(uScreenId)->update();
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 45325)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 45328)
@@ -209,5 +209,5 @@
     {
         if (vboxGlobal().showStartVMErrors())
-            msgCenter().cannotStartMachine(console);
+            msgCenter().cannotStartMachine(console, machine.GetName());
         closeRuntimeUI();
         return;
@@ -225,5 +225,4 @@
            should be notified about host MachineWindow geometry change */
         adjustGuestView();
-
     }
     else
@@ -231,8 +230,8 @@
 
     /* Check for a progress failure: */
-    if (progress.GetResultCode() != 0)
+    if (!progress.isOk() || progress.GetResultCode() != 0)
     {
         if (vboxGlobal().showStartVMErrors())
-            msgCenter().cannotStartMachine(progress);
+            msgCenter().cannotStartMachine(progress, machine.GetName());
         closeRuntimeUI();
         return;
@@ -282,6 +281,6 @@
                 /* Show the power down progress dialog */
                 msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_poweroff_90px.png", mainMachineWindow());
-                if (progress.GetResultCode() != 0)
-                    msgCenter().cannotStopMachine(progress);
+                if (!progress.isOk() || progress.GetResultCode() != 0)
+                    msgCenter().cannotPowerDownMachine(progress, machine.GetName());
                 /* Allow further auto-closing: */
                 if (uimachine()->machineLogic())
@@ -289,5 +288,5 @@
             }
             else
-                msgCenter().cannotStopMachine(console);
+                msgCenter().cannotPowerDownMachine(console);
             closeRuntimeUI();
             return;
@@ -324,8 +323,8 @@
                                             ":/progress_state_save_90px.png",
                                             machineLogic()->activeMachineWindow());
-        if (progress.GetResultCode() != 0)
+        if (!progress.isOk() || progress.GetResultCode() != 0)
         {
             /* Failed in progress: */
-            msgCenter().cannotSaveMachineState(progress);
+            msgCenter().cannotSaveMachineState(progress, machine.GetName());
             return false;
         }
@@ -406,5 +405,5 @@
         {
             /* Failed in progress: */
-            msgCenter().cannotStopMachine(progress);
+            msgCenter().cannotPowerDownMachine(progress, machine.GetName());
             return false;
         }
@@ -418,5 +417,5 @@
             fServerCrashed = true;
         else
-            msgCenter().cannotStopMachine(console);
+            msgCenter().cannotPowerDownMachine(console);
         return false;
     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 45325)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 45328)
@@ -562,5 +562,5 @@
 
     /* Confirm reseting VM: */
-    if (!msgCenter().confirmVMReset(machineNames.join(", ")))
+    if (!msgCenter().confirmResetMachine(machineNames.join(", ")))
         return;
 
@@ -603,16 +603,16 @@
         /* Get session console: */
         CConsole console = session.GetConsole();
-        /* Save machine state: */
+        /* Prepare machine state saving: */
         CProgress progress = console.SaveState();
-        if (!console.isOk())
-            msgCenter().cannotSaveMachineState(console);
-        else
-        {
-            /* Show the "VM saving" progress dialog: */
+        if (console.isOk())
+        {
+            /* Show machine state saving progress: */
             CMachine machine = session.GetMachine();
             msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_state_save_90px.png", this);
-            if (progress.GetResultCode() != 0)
-                msgCenter().cannotSaveMachineState(progress);
-        }
+            if (!progress.isOk() || progress.GetResultCode() != 0)
+                msgCenter().cannotSaveMachineState(progress, machine.GetName());
+        }
+        else
+            msgCenter().cannotSaveMachineState(console);
 
         /* Unlock machine finally: */
@@ -639,5 +639,5 @@
 
     /* Confirm ACPI shutdown current VM: */
-    if (!msgCenter().confirmVMACPIShutdown(machineNames.join(", ")))
+    if (!msgCenter().confirmACPIShutdownMachine(machineNames.join(", ")))
         return;
 
@@ -654,4 +654,6 @@
         /* ACPI Shutdown: */
         console.PowerButton();
+        if (!console.isOk())
+            msgCenter().cannotACPIShutdownMachine(console);
 
         /* Unlock machine finally: */
@@ -678,5 +680,5 @@
 
     /* Confirm Power Off current VM: */
-    if (!msgCenter().confirmVMPowerOff(machineNames.join(", ")))
+    if (!msgCenter().confirmPowerOffMachine(machineNames.join(", ")))
         return;
 
@@ -691,8 +693,16 @@
         /* Get session console: */
         CConsole console = session.GetConsole();
-        /* Power Off: */
-        console.PowerDown();
-        if (!console.isOk())
-            msgCenter().cannotStopMachine(console);
+        /* Prepare machine power down: */
+        CProgress progress = console.PowerDown();
+        if (console.isOk())
+        {
+            /* Show machine power down progress: */
+            CMachine machine = session.GetMachine();
+            msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_poweroff_90px.png", this);
+            if (!progress.isOk() || progress.GetResultCode() != 0)
+                msgCenter().cannotPowerDownMachine(progress, machine.GetName());
+        }
+        else
+            msgCenter().cannotPowerDownMachine(console);
 
         /* Unlock machine finally: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp	(revision 45325)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp	(revision 45328)
@@ -859,9 +859,8 @@
                     {
                         /* Show the take-snapshot progress: */
-                        msgCenter().showModalProgressDialog(progress, mMachine.GetName(), ":/progress_snapshot_create_90px.png",
-                                                            msgCenter().mainWindowShown(), true);
-                        if (progress.GetResultCode() != 0)
+                        msgCenter().showModalProgressDialog(progress, mMachine.GetName(), ":/progress_snapshot_create_90px.png");
+                        if (!progress.isOk() || progress.GetResultCode() != 0)
                         {
-                            msgCenter().cannotTakeSnapshot(progress);
+                            msgCenter().cannotTakeSnapshot(progress, mMachine.GetName());
                             fIsValid = false;
                         }
@@ -869,5 +868,5 @@
                     else
                     {
-                        msgCenter().cannotTakeSnapshot(console);
+                        msgCenter().cannotTakeSnapshot(console, mMachine.GetName());
                         fIsValid = false;
                     }
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp	(revision 45325)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevm/UIWizardCloneVM.cpp	(revision 45328)
@@ -88,5 +88,5 @@
             if (!progress.isOk() || progress.GetResultCode() != 0)
             {
-                msgCenter().cannotTakeSnapshot(progress);
+                msgCenter().cannotTakeSnapshot(progress, m_machine.GetName(), this);
                 return false;
             }
@@ -94,5 +94,5 @@
         else
         {
-            msgCenter().cannotTakeSnapshot(console);
+            msgCenter().cannotTakeSnapshot(console, m_machine.GetName(), this);
             return false;
         }
