Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.cpp	(revision 99207)
@@ -987,4 +987,7 @@
         switch (enmType)
         {
+            case WizardType_NewVM:
+                m_wizards[enmType] = new UIWizardNewVM(this, actionPool(), m_pWidget->fullGroupName(), m_strISOFilePath);
+                break;
             case WizardType_ExportAppliance:
                 m_wizards[enmType] = new UIWizardExportApp(this, m_names, m_fExportToOCI);
@@ -1016,4 +1019,24 @@
 void UIVirtualBoxManager::sltCloseWizard(WizardType enmType)
 {
+    /* Postprocess wizard if still exists: */
+    if (m_wizards.contains(enmType))
+    {
+        switch (enmType)
+        {
+            case WizardType_NewVM:
+            {
+                UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(m_wizards.value(enmType));
+                if (pWizard->isUnattendedEnabled())
+                    startUnattendedInstall(pWizard->installer(),
+                                           pWizard->startHeadless(),
+                                           pWizard->createdMachineId().toString());
+                break;
+            }
+            default:
+                break;
+        }
+    }
+
+    /* Cleanup instance: */
     delete m_wizards.take(enmType);
 }
@@ -2586,33 +2609,9 @@
 void UIVirtualBoxManager::openNewMachineWizard(const QString &strISOFilePath /* = QString() */)
 {
-    /* Lock the actions preventing cascade calls: */
-    UIQObjectPropertySetter guardBlock(QList<QObject*>() << actionPool()->action(UIActionIndexMN_M_Welcome_S_New)
-                                                         << actionPool()->action(UIActionIndexMN_M_Machine_S_New)
-                                                         << actionPool()->action(UIActionIndexMN_M_Group_S_New),
-                                       "opened", true);
-    connect(&guardBlock, &UIQObjectPropertySetter::sigAboutToBeDestroyed,
-            this, &UIVirtualBoxManager::sltHandleUpdateActionAppearanceRequest);
-    updateActionsAppearance();
-
-    CUnattended comUnattendedInstaller = uiCommon().virtualBox().CreateUnattendedInstaller();
-    AssertMsg(!comUnattendedInstaller.isNull(), ("Could not create unattended installer!\n"));
-
-    /* Use the "safe way" to open stack of Mac OS X Sheets: */
-    QWidget *pWizardParent = windowManager().realParentWindow(this);
-    UISafePointerWizardNewVM pWizard = new UIWizardNewVM(pWizardParent, actionPool(),
-                                                         m_pWidget->fullGroupName(),
-                                                         comUnattendedInstaller, strISOFilePath);
-    windowManager().registerNewParent(pWizard, pWizardParent);
-
-    /* Execute wizard: */
-    pWizard->exec();
-
-    bool fStartHeadless = pWizard->startHeadless();
-    bool fUnattendedEnabled = pWizard->isUnattendedEnabled();
-    QString strMachineId = pWizard->createdMachineId().toString();
-    delete pWizard;
-    /* Handle unattended install stuff: */
-    if (fUnattendedEnabled)
-        startUnattendedInstall(comUnattendedInstaller, fStartHeadless, strMachineId);
+    /* Configure wizard variables: */
+    m_strISOFilePath = strISOFilePath;
+
+    /* Open New VM Wizard: */
+    sltOpenWizard(WizardType_NewVM);
 }
 
@@ -2683,5 +2682,5 @@
 }
 
-void UIVirtualBoxManager::startUnattendedInstall(CUnattended &comUnattendedInstaller,
+void UIVirtualBoxManager::startUnattendedInstall(const CUnattended &comUnattendedRef,
                                                  bool fStartHeadless, const QString &strMachineId)
 {
@@ -2691,10 +2690,11 @@
         return;
 
-    comUnattendedInstaller.Prepare();
-    AssertReturnVoid(checkUnattendedInstallError(comUnattendedInstaller));
-    comUnattendedInstaller.ConstructMedia();
-    AssertReturnVoid(checkUnattendedInstallError(comUnattendedInstaller));
-    comUnattendedInstaller.ReconfigureVM();
-    AssertReturnVoid(checkUnattendedInstallError(comUnattendedInstaller));
+    CUnattended comUnattended = comUnattendedRef;
+    comUnattended.Prepare();
+    AssertReturnVoid(checkUnattendedInstallError(comUnattended));
+    comUnattended.ConstructMedia();
+    AssertReturnVoid(checkUnattendedInstallError(comUnattended));
+    comUnattended.ReconfigureVM();
+    AssertReturnVoid(checkUnattendedInstallError(comUnattended));
 
     launchMachine(comMachine, fStartHeadless ? UILaunchMode_Headless : UILaunchMode_Default);
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/UIVirtualBoxManager.h	(revision 99207)
@@ -411,5 +411,5 @@
 
         /** Creates an unattended installer and uses it to install guest os to newly created vm. */
-        void startUnattendedInstall(CUnattended &comUnattendedInstaller, bool fStartHeadless, const QString &strMachineId);
+        void startUnattendedInstall(const CUnattended &comUnattended, bool fStartHeadless, const QString &strMachineId);
 
         /** Launches or shows virtual machines represented by passed @a items in corresponding @a enmLaunchMode (for launch). */
@@ -522,4 +522,7 @@
     int  m_iGeometrySaveTimerId;
 
+    /** Holds the ISO file path used by new VM wizard. */
+    QString  m_strISOFilePath;
+
     /** Holds whether OCI importing should be started by default. */
     bool     m_fImportFromOCI;
Index: trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp	(revision 99207)
@@ -50,5 +50,4 @@
 #include "UIVirtualBoxManagerWidget.h"
 #include "UIVirtualBoxEventHandler.h"
-#include "UIWizardNewVM.h"
 
 /* COM includes: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBox.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBox.cpp	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIToolBox.cpp	(revision 99207)
@@ -39,5 +39,4 @@
 #include "UIIconPool.h"
 #include "UIToolBox.h"
-#include "UIWizardNewVM.h"
 
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.cpp	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIHostnameDomainNameEditor.cpp	(revision 99207)
@@ -41,6 +41,4 @@
 #include "UIIconPool.h"
 #include "UIHostnameDomainNameEditor.h"
-#include "UIWizardNewVM.h"
-
 
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIUserNamePasswordEditor.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIUserNamePasswordEditor.cpp	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIUserNamePasswordEditor.cpp	(revision 99207)
@@ -39,5 +39,7 @@
 #include "UIIconPool.h"
 #include "UIUserNamePasswordEditor.h"
-#include "UIWizardNewVM.h"
+
+/* Other VBox includes: */
+#include "iprt/assert.h"
 
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardDiskEditors.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardDiskEditors.cpp	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/editors/UIWizardDiskEditors.cpp	(revision 99207)
@@ -47,5 +47,4 @@
 #include "UIUserNamePasswordEditor.h"
 #include "UIWizardDiskEditors.h"
-#include "UIWizardNewVM.h"
 #include "UIWizardNewVMDiskPage.h"
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 99207)
@@ -52,5 +52,4 @@
 #include "CUSBController.h"
 #include "CUSBDeviceFilters.h"
-#include "CUnattended.h"
 
 /* Namespaces: */
@@ -61,5 +60,4 @@
                              UIActionPool *pActionPool,
                              const QString &strMachineGroup,
-                             CUnattended &comUnattended,
                              const QString &strISOFilePath /* = QString() */)
     : UINativeWizard(pParent, WizardType_NewVM, WizardMode_Auto, "create-vm-wizard" /* help keyword */)
@@ -82,5 +80,4 @@
     , m_fEmptyDiskRecommended(false)
     , m_pActionPool(pActionPool)
-    , m_comUnattended(comUnattended)
     , m_fStartHeadless(false)
     , m_strInitialISOFilePath(strISOFilePath)
@@ -97,4 +94,8 @@
 
     connect(this, &UIWizardNewVM::rejected, this, &UIWizardNewVM::sltHandleWizardCancel);
+
+    /* Create installer: */
+    m_comUnattended = uiCommon().virtualBox().CreateUnattendedInstaller();
+    AssertMsg(!m_comUnattended.isNull(), ("Could not create unattended installer!\n"));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 99205)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 99207)
@@ -41,4 +41,5 @@
 #include "CMediumFormat.h"
 #include "CGuestOSType.h"
+#include "CUnattended.h"
 
 /* Forward declarations: */
@@ -63,5 +64,4 @@
                   UIActionPool *pActionPool,
                   const QString &strMachineGroup,
-                  CUnattended &comUnattended,
                   const QString &strISOFilePath = QString());
 
@@ -79,4 +79,6 @@
     const QString &machineGroup() const;
     QUuid createdMachineId() const;
+
+    CUnattended installer() const { return m_comUnattended; }
 
     /** @name Setter/getters for vm parameters
@@ -237,5 +239,5 @@
        QVector<KMediumVariant> m_mediumVariants;
        UIActionPool *m_pActionPool;
-       CUnattended &m_comUnattended;
+       CUnattended m_comUnattended;
        bool m_fStartHeadless;
        QString m_strInitialISOFilePath;
