Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp	(revision 90232)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMNameOSTypePageBasic.cpp	(revision 90233)
@@ -469,4 +469,5 @@
 void UIWizardNewVMNameOSTypePageBasic::sltSkipUnattendedInstallChanged(bool fSkip)
 {
+    m_userModifiedParameters << "SkipUnattendedInstall";
     newVMWizardPropertySet(SkipUnattendedInstall, fSkip);
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp	(revision 90232)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.cpp	(revision 90233)
@@ -47,5 +47,5 @@
 #include "UIWizardNewVMPageExpert.h"
 #include "UIWizardNewVMNameOSTypePageBasic.h"
-#include "UIWizardNewVMDiskPageBasic.h"
+
 
 /* COM includes: */
@@ -69,4 +69,6 @@
     , m_pDiskSelector(0)
     , m_pDiskSelectionButton(0)
+    , m_enmSelectedDiskSource(SelectedDiskSource_New)
+    , m_fRecommendedNoDisk(false)
 {
     /* Create widgets: */
@@ -167,5 +169,5 @@
         uiCommon().updateRecentlyUsedMediumListAndFolder(UIMediumDeviceType_DVD, strISOPath);
     setSkipCheckBoxEnable();
-    disableEnableUnattendedRelatedWidgets(pWizard->isUnattendedEnabled());
+    disableEnableUnattendedRelatedWidgets(isUnattendedEnabled());
     emit completeChanged();
 }
@@ -279,4 +281,9 @@
     }
 
+    if (m_pDiskSourceButtonGroup)
+        connect(m_pDiskSourceButtonGroup, static_cast<void(QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked),
+                this, &UIWizardNewVMPageExpert::sltSelectedDiskSourceChanged);
+
+    connect(m_pSkipUnattendedCheckBox, &QCheckBox::toggled, this, &UIWizardNewVMPageExpert::sltSkipUnattendedCheckBoxChecked);
 
     // if (m_pFormatButtonGroup)
@@ -297,12 +304,4 @@
     //             this, &UIWizardNewVMPageExpert::sltMediaComboBoxIndexChanged);
 
-    // if (m_pDiskSourceButtonGroup)
-    // {
-    //     connect(m_pDiskSourceButtonGroup, static_cast<void(QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked),
-    //             this, &UIWizardNewVMPageExpert::sltSelectedDiskSourceChanged);
-    //     connect(m_pDiskSourceButtonGroup, static_cast<void(QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked),
-    //             this, &UIWizardNewVMPageExpert::sltValueModified);
-    // }
-    // connect(m_pSkipUnattendedCheckBox, &QCheckBox::toggled, this, &UIWizardNewVMPageExpert::sltSkipUnattendedCheckBoxChecked);
 
     // if (m_pLocationOpenButton)
@@ -331,29 +330,29 @@
         m_pHardwareWidgetContainer->blockSignals(false);
     }
-    // LONG64 recommendedDiskSize = type.GetRecommendedHDD();
-    // /* Prepare initial disk choice: */
-    // if (!m_userSetWidgets.contains(m_pDiskSourceButtonGroup))
-    // {
-    //     if (recommendedDiskSize != 0)
-    //     {
-    //         if (m_pDiskNew)
-    //             m_pDiskNew->setChecked(true);
-    //         setSelectedDiskSource(SelectedDiskSource_New);
-    //         setEnableDiskSelectionWidgets(false);
-    //         setEnableNewDiskWidgets(true);
-    //         m_fRecommendedNoDisk = false;
-    //     }
-    //     else
-    //     {
-    //         if (m_pDiskEmpty)
-    //             m_pDiskEmpty->setChecked(true);
-    //         setSelectedDiskSource(SelectedDiskSource_Empty);
-    //         setEnableDiskSelectionWidgets(false);
-    //         setEnableNewDiskWidgets(false);
-    //         m_fRecommendedNoDisk = true;
-    //     }
-    //     if (m_pDiskSelector)
-    //         m_pDiskSelector->setCurrentIndex(0);
-    // }
+    LONG64 recommendedDiskSize = type.GetRecommendedHDD();
+    /* Prepare initial disk choice: */
+    if (!m_userModifiedParameters.contains("SelectedDiskSource"))
+    {
+        if (recommendedDiskSize != 0)
+        {
+            if (m_pDiskNew)
+                m_pDiskNew->setChecked(true);
+            m_enmSelectedDiskSource = SelectedDiskSource_New;
+            setEnableDiskSelectionWidgets(false);
+            setEnableNewDiskWidgets(true);
+            m_fRecommendedNoDisk = false;
+        }
+        else
+        {
+            if (m_pDiskEmpty)
+                m_pDiskEmpty->setChecked(true);
+            m_enmSelectedDiskSource = SelectedDiskSource_Empty;
+            setEnableDiskSelectionWidgets(false);
+            setEnableNewDiskWidgets(false);
+            m_fRecommendedNoDisk = true;
+        }
+        if (m_pDiskSelector)
+            m_pDiskSelector->setCurrentIndex(0);
+    }
 
     // if (m_pMediumSizeEditor  && !m_userSetWidgets.contains(m_pMediumSizeEditor))
@@ -405,9 +404,6 @@
 
 
-    // disableEnableUnattendedRelatedWidgets(isUnattendedEnabled());
     setOSTypeDependedValues();
-    // disableEnableUnattendedRelatedWidgets(isUnattendedEnabled());
-
-
+    disableEnableUnattendedRelatedWidgets(isUnattendedEnabled());
     // updateWidgetAterMediumFormatChange();
     // setSkipCheckBoxEnable();
@@ -625,5 +621,5 @@
 {
     UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
-    if (!pWizard || !pWizard->isUnattendedEnabled() || !pWizard->isGuestOSTypeWindows())
+    if (!pWizard || !isUnattendedEnabled() || !pWizard->isGuestOSTypeWindows())
         return false;
     return true;
@@ -632,18 +628,19 @@
 void UIWizardNewVMPageExpert::disableEnableUnattendedRelatedWidgets(bool fEnabled)
 {
-    Q_UNUSED(fEnabled);
-
-    // if (m_pUserNameContainer)
-    //     m_pUserNameContainer->setEnabled(fEnabled);
-    // if (m_pAdditionalOptionsContainer)
-    //     m_pAdditionalOptionsContainer->setEnabled(fEnabled);
-    // if (m_pGAInstallationISOContainer)
-    //     m_pGAInstallationISOContainer->setEnabled(fEnabled);
-    // disableEnableProductKeyWidgets(isProductKeyWidgetEnabled());
-}
-
-void UIWizardNewVMPageExpert::sltSkipUnattendedCheckBoxChecked()
-{
-    //disableEnableUnattendedRelatedWidgets(isUnattendedEnabled());
+    if (m_pUserNamePasswordGroupBox)
+        m_pUserNamePasswordGroupBox->setEnabled(fEnabled);
+    if (m_pAdditionalOptionsContainer)
+        m_pAdditionalOptionsContainer->setEnabled(fEnabled);
+    if (m_pGAInstallationISOContainer)
+        m_pGAInstallationISOContainer->setEnabled(fEnabled);
+    m_pAdditionalOptionsContainer->disableEnableProductKeyWidgets(isProductKeyWidgetEnabled());
+}
+
+void UIWizardNewVMPageExpert::sltSkipUnattendedCheckBoxChecked(bool fSkip)
+{
+    m_userModifiedParameters << "SkipUnattendedInstall";
+    newVMWizardPropertySet(SkipUnattendedInstall, fSkip);
+    disableEnableUnattendedRelatedWidgets(isUnattendedEnabled());
+    emit completeChanged();
 }
 
@@ -668,21 +665,21 @@
 void UIWizardNewVMPageExpert::sltSelectedDiskSourceChanged()
 {
-    // if (!m_pDiskSourceButtonGroup)
-    //     return;
-    // m_userSetWidgets << m_pDiskSourceButtonGroup;
-    // if (m_pDiskSourceButtonGroup->checkedButton() == m_pDiskEmpty)
-    //     setSelectedDiskSource(SelectedDiskSource_Empty);
-    // else if (m_pDiskSourceButtonGroup->checkedButton() == m_pDiskExisting)
-    // {
-    //     setSelectedDiskSource(SelectedDiskSource_Existing);
-    //     setVirtualDiskFromDiskCombo();
-    // }
-    // else
-    //     setSelectedDiskSource(SelectedDiskSource_New);
-
-    // setEnableDiskSelectionWidgets(m_enmSelectedDiskSource == SelectedDiskSource_Existing);
-    // setEnableNewDiskWidgets(m_enmSelectedDiskSource == SelectedDiskSource_New);
-
-    // completeChanged();
+    if (!m_pDiskSourceButtonGroup)
+        return;
+    m_userModifiedParameters << "SelectedDiskSource";
+    if (m_pDiskSourceButtonGroup->checkedButton() == m_pDiskEmpty)
+        m_enmSelectedDiskSource = SelectedDiskSource_Empty;
+    else if (m_pDiskSourceButtonGroup->checkedButton() == m_pDiskExisting)
+    {
+        m_enmSelectedDiskSource = SelectedDiskSource_Existing;
+        setVirtualDiskFromDiskCombo();
+    }
+    else
+        m_enmSelectedDiskSource = SelectedDiskSource_New;
+
+    setEnableDiskSelectionWidgets(m_enmSelectedDiskSource == SelectedDiskSource_Existing);
+    setEnableNewDiskWidgets(m_enmSelectedDiskSource == SelectedDiskSource_New);
+
+    emit completeChanged();
 }
 
@@ -841,2 +838,18 @@
     m_pAdditionalOptionsContainer->blockSignals(false);
 }
+
+bool UIWizardNewVMPageExpert::isUnattendedEnabled() const
+{
+    UIWizardNewVM *pWizard = qobject_cast<UIWizardNewVM*>(wizard());
+    AssertReturn(pWizard, false);
+    return pWizard->isUnattendedEnabled();
+}
+
+void UIWizardNewVMPageExpert::setEnableDiskSelectionWidgets(bool fEnabled)
+{
+    if (!m_pDiskSelector || !m_pDiskSelectionButton)
+        return;
+
+    m_pDiskSelector->setEnabled(fEnabled);
+    m_pDiskSelectionButton->setEnabled(fEnabled);
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h	(revision 90232)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageExpert.h	(revision 90233)
@@ -25,5 +25,7 @@
 #include <QSet>
 
+/* GUI includes: */
 #include "UINativeWizardPage.h"
+#include "UIWizardNewVMDiskPageBasic.h"
 
 #include "COMEnums.h"
@@ -79,5 +81,5 @@
     void sltOSFamilyTypeChanged(const QString &strGuestOSFamilyType);
     void sltInstallGACheckBoxToggle(bool fEnabled);
-    void sltSkipUnattendedCheckBoxChecked();
+    void sltSkipUnattendedCheckBoxChecked(bool fSkip);
     void sltMediumFormatChanged();
     void sltMediumSizeChanged();
@@ -137,4 +139,6 @@
     void setVirtualDiskFromDiskCombo();
     void setSkipCheckBoxEnable();
+    bool isUnattendedEnabled() const;
+    void setEnableDiskSelectionWidgets(bool fEnabled);
 
     /** @name Variables
@@ -158,4 +162,6 @@
         QIToolButton *m_pDiskSelectionButton;
         QSet<QString> m_userModifiedParameters;
+        SelectedDiskSource m_enmSelectedDiskSource;
+    bool m_fRecommendedNoDisk;
     /** @} */
 };
