Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 45313)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 45314)
@@ -742,46 +742,34 @@
 }
 
-void UIMessageCenter::cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName) const
-{
-    message(mainWindowShown(), MessageType_Error,
+void UIMessageCenter::cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent /*= 0*/) const
+{
+    message(pParent ? pParent : mainWindowShown(), MessageType_Error,
             tr("Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
-               .arg(strSnapshotName).arg(CConsole(console).GetMachine().GetName()),
+               .arg(strSnapshotName, strMachineName),
             formatErrorInfo(console));
 }
 
-void UIMessageCenter::cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName) const
-{
-    /* Get console: */
-    AssertWrapperOk(progress);
-    CConsole console(CProgress(progress).GetInitiator());
-    AssertWrapperOk(console);
-    /* Show the message: */
-    message(mainWindowShown(), MessageType_Error,
+void UIMessageCenter::cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent /*= 0*/) const
+{
+    message(pParent ? pParent : mainWindowShown(), MessageType_Error,
             tr("Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
-               .arg(strSnapshotName).arg(console.GetMachine().GetName()),
-            formatErrorInfo(progress.GetErrorInfo()));
-}
-
-void UIMessageCenter::cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName) const
+               .arg(strSnapshotName, strMachineName),
+            !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+}
+
+void UIMessageCenter::cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const
 {
     message(mainWindowShown(), MessageType_Error,
             tr("Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
-               .arg(strSnapshotName)
-               .arg(CConsole(console).GetMachine().GetName()),
+               .arg(strSnapshotName, strMachineName),
             formatErrorInfo(console));
 }
 
-void UIMessageCenter::cannotRemoveSnapshot(const CProgress &progress, const QString &strSnapshotName) const
-{
-    /* Get console: */
-    AssertWrapperOk(progress);
-    CConsole console(CProgress(progress).GetInitiator());
-    AssertWrapperOk(console);
-    /* Show the message: */
+void UIMessageCenter::cannotRemoveSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const
+{
     message(mainWindowShown(), MessageType_Error,
             tr("Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
-               .arg(strSnapshotName)
-               .arg(console.GetMachine().GetName()),
-            formatErrorInfo(progress.GetErrorInfo()));
+               .arg(strSnapshotName).arg(strMachineName),
+            !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 45313)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 45314)
@@ -236,8 +236,8 @@
     bool warnAboutSnapshotRemovalFreeSpace(const QString &strSnapshotName, const QString &strTargetImageName,
                                            const QString &strTargetImageMaxSize, const QString &strTargetFileSystemFree) const;
-    void cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName) const;
-    void cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName) const;
-    void cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName) const;
-    void cannotRemoveSnapshot(const CProgress &progress, const QString &strSnapshotName) 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;
+    void cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const;
+    void cannotRemoveSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const;
 
     /* API: Settings warnings: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 45313)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 45314)
@@ -391,5 +391,5 @@
                     {
                         /* Failed in progress: */
-                        msgCenter().cannotRestoreSnapshot(progress, snapshot.GetName());
+                        msgCenter().cannotRestoreSnapshot(progress, snapshot.GetName(), machine.GetName(), machineLogic()->activeMachineWindow());
                         return false;
                     }
@@ -398,5 +398,5 @@
                 {
                     /* Failed in console: */
-                    msgCenter().cannotRestoreSnapshot(console, snapshot.GetName());
+                    msgCenter().cannotRestoreSnapshot(console, snapshot.GetName(), machine.GetName(), machineLogic()->activeMachineWindow());
                     return false;
                 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp	(revision 45313)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/VBoxSnapshotsWgt.cpp	(revision 45314)
@@ -608,10 +608,10 @@
     {
         msgCenter().showModalProgressDialog(progress, mMachine.GetName(), ":/progress_snapshot_restore_90px.png",
-                                              msgCenter().mainWindowShown(), true);
+                                            msgCenter().mainWindowShown(), true);
         if (progress.GetResultCode() != 0)
-            msgCenter().cannotRestoreSnapshot(progress, snapshot.GetName());
+            msgCenter().cannotRestoreSnapshot(progress, snapshot.GetName(), mMachine.GetName());
     }
     else
-        msgCenter().cannotRestoreSnapshot(console, snapshot.GetName());
+        msgCenter().cannotRestoreSnapshot(console, snapshot.GetName(), mMachine.GetName());
 
     /* Unlock machine finally: */
@@ -656,12 +656,12 @@
     {
         /* Show the progress dialog */
-        msgCenter().showModalProgressDialog (progress, mMachine.GetName(), ":/progress_snapshot_discard_90px.png",
-                                               msgCenter().mainWindowShown(), true);
+        msgCenter().showModalProgressDialog(progress, mMachine.GetName(), ":/progress_snapshot_discard_90px.png",
+                                            msgCenter().mainWindowShown(), true);
 
         if (progress.GetResultCode() != 0)
-            msgCenter().cannotRemoveSnapshot (progress,  snapshot.GetName());
+            msgCenter().cannotRemoveSnapshot(progress,  snapshot.GetName(), mMachine.GetName());
     }
     else
-        msgCenter().cannotRemoveSnapshot (console,  snapshot.GetName());
+        msgCenter().cannotRemoveSnapshot(console,  snapshot.GetName(), mMachine.GetName());
 
     session.UnlockMachine();
