Index: /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 92085)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 92086)
@@ -980,5 +980,5 @@
 
 /* static */
-void UINotificationMessage::cannotRemoveMachine(const CMachine &comMachine)
+void UINotificationMessage::cannotRemoveMachine(const CMachine &comMachine, UINotificationCenter *pParent /* = 0 */)
 {
     createMessage(
@@ -986,5 +986,6 @@
         QApplication::translate("UIMessageCenter", "Failed to remove the virtual machine <b>%1</b>.")
                                                    .arg(CMachine(comMachine).GetName()) +
-        UIErrorString::formatErrorInfo(comMachine));
+        UIErrorString::formatErrorInfo(comMachine),
+        QString(), QString(), pParent);
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 92085)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 92086)
@@ -394,5 +394,5 @@
         /** Notifies about inability to remove machine.
           * @param  comMachine  Brings machine being removed. */
-        static void cannotRemoveMachine(const CMachine &comMachine);
+        static void cannotRemoveMachine(const CMachine &comMachine, UINotificationCenter *pParent = 0);
 
         /** Notifies about inability to find snapshot by ID.
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 92085)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 92086)
@@ -444,16 +444,19 @@
     if (!success)
     {
-        CVirtualBox vbox = uiCommon().virtualBox();
-        /* Unregister on failure */
-        QVector<CMedium> aMedia = m_machine.Unregister(KCleanupMode_DetachAllReturnHardDisksOnly);
-        if (vbox.isOk())
-        {
-            CProgress progress = m_machine.DeleteConfig(aMedia);
-            progress.WaitForCompletion(-1);         /// @todo do this nicely with a progress dialog, this can delete lots of files
-        }
-    }
-
-    /* Make sure we detach CMedium wrapper from IMedium pointer to avoid deletion of IMedium as m_virtualDisk is deallocated: */
-    /* Or in case of IMachine::DeleteConfig IMedium has been already deleted so detach in this case as well:*/
+        /* Unregister VM on failure: */
+        const QVector<CMedium> media = m_machine.Unregister(KCleanupMode_DetachAllReturnHardDisksOnly);
+        if (!m_machine.isOk())
+            UINotificationMessage::cannotRemoveMachine(m_machine, notificationCenter());
+        else
+        {
+            UINotificationProgressMachineMediaRemove *pNotification =
+                new UINotificationProgressMachineMediaRemove(m_machine, media);
+            handleNotificationProgressNow(pNotification);
+        }
+    }
+
+    /* Make sure we detach CMedium wrapper from IMedium pointer to avoid deletion of IMedium as m_virtualDisk
+     * is deallocated.  Or in case of UINotificationProgressMachineMediaRemove handling, IMedium has been
+     * already deleted so detach in this case as well. */
     if (!m_virtualDisk.isNull())
         m_virtualDisk.detach();
