Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic1.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic1.cpp	(revision 87849)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic1.cpp	(revision 87850)
@@ -34,4 +34,5 @@
 
 UIWizardNewVDPage1::UIWizardNewVDPage1()
+    : m_pFormatButtonGroup(0)
 {
 }
@@ -76,7 +77,60 @@
 }
 
+QWidget *UIWizardNewVDPage1::createFormatButtonGroup(bool fExpertMode)
+{
+    QWidget *pContainerWidget = new QWidget;
+    QVBoxLayout *pContainerLayout = new QVBoxLayout(pContainerWidget);
+    pContainerLayout->setContentsMargins(0, 0, 0, 0);
+
+    m_pFormatButtonGroup = new QButtonGroup;
+    if (m_pFormatButtonGroup)
+    {
+        /* Enumerate medium formats in special order: */
+        CSystemProperties properties = uiCommon().virtualBox().GetSystemProperties();
+        const QVector<CMediumFormat> &formats = properties.GetMediumFormats();
+        QMap<QString, CMediumFormat> vdi, preferred, others;
+        foreach (const CMediumFormat &format, formats)
+        {
+            /* VDI goes first: */
+            if (format.GetName() == "VDI")
+                vdi[format.GetId()] = format;
+            else
+            {
+                const QVector<KMediumFormatCapabilities> &capabilities = format.GetCapabilities();
+                /* Then goes preferred: */
+                if (capabilities.contains(KMediumFormatCapabilities_Preferred))
+                    preferred[format.GetId()] = format;
+                /* Then others: */
+                else
+                    others[format.GetId()] = format;
+            }
+        }
+
+        /* Create buttons for VDI, preferred and others: */
+        foreach (const QString &strId, vdi.keys())
+            addFormatButton(pContainerWidget, pContainerLayout, vdi.value(strId), fExpertMode);
+        foreach (const QString &strId, preferred.keys())
+            addFormatButton(pContainerWidget, pContainerLayout, preferred.value(strId), fExpertMode);
+        if (fExpertMode)
+        {
+            foreach (const QString &strId, others.keys())
+                addFormatButton(pContainerWidget, pContainerLayout, others.value(strId));
+        }
+
+        if (!m_pFormatButtonGroup->buttons().isEmpty())
+        {
+            m_pFormatButtonGroup->button(0)->click();
+            m_pFormatButtonGroup->button(0)->setFocus();
+        }
+    }
+
+
+
+    return pContainerWidget;
+}
+
 CMediumFormat UIWizardNewVDPage1::mediumFormat() const
 {
-    return m_pFormatButtonGroup->checkedButton() ? m_formats[m_pFormatButtonGroup->checkedId()] : CMediumFormat();
+    return m_pFormatButtonGroup && m_pFormatButtonGroup->checkedButton() ? m_formats[m_pFormatButtonGroup->checkedId()] : CMediumFormat();
 }
 
@@ -97,41 +151,7 @@
     {
         m_pLabel = new QIRichTextLabel(this);
-        QVBoxLayout *pFormatLayout = new QVBoxLayout;
-        {
-            m_pFormatButtonGroup = new QButtonGroup(this);
-            {
-                /* Enumerate medium formats in special order: */
-                CSystemProperties properties = uiCommon().virtualBox().GetSystemProperties();
-                const QVector<CMediumFormat> &formats = properties.GetMediumFormats();
-                QMap<QString, CMediumFormat> vdi, preferred;
-                foreach (const CMediumFormat &format, formats)
-                {
-                    /* VDI goes first: */
-                    if (format.GetName() == "VDI")
-                        vdi[format.GetId()] = format;
-                    else
-                    {
-                        const QVector<KMediumFormatCapabilities> &capabilities = format.GetCapabilities();
-                        /* Then preferred: */
-                        if (capabilities.contains(KMediumFormatCapabilities_Preferred))
-                            preferred[format.GetId()] = format;
-                    }
-                }
-
-                /* Create buttons for VDI and preferred: */
-                foreach (const QString &strId, vdi.keys())
-                    addFormatButton(this, pFormatLayout, vdi.value(strId));
-                foreach (const QString &strId, preferred.keys())
-                    addFormatButton(this, pFormatLayout, preferred.value(strId));
-
-                if (!m_pFormatButtonGroup->buttons().isEmpty())
-                {
-                    m_pFormatButtonGroup->button(0)->click();
-                    m_pFormatButtonGroup->button(0)->setFocus();
-                }
-            }
-        }
         pMainLayout->addWidget(m_pLabel);
-        pMainLayout->addLayout(pFormatLayout);
+        pMainLayout->addWidget(createFormatButtonGroup(false));
+
         pMainLayout->addStretch();
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic1.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic1.h	(revision 87849)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic1.h	(revision 87850)
@@ -47,4 +47,6 @@
     void addFormatButton(QWidget *pParent, QVBoxLayout *pFormatsLayout, CMediumFormat medFormat, bool fPreferred = false);
 
+    QWidget *createFormatButtonGroup(bool fExperMode);
+
     /* Stuff for 'mediumFormat' field: */
     CMediumFormat mediumFormat() const;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp	(revision 87849)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageBasic3.cpp	(revision 87850)
@@ -154,12 +154,15 @@
 QString UIWizardNewVDPage3::defaultExtension(const CMediumFormat &mediumFormatRef)
 {
-    /* Load extension / device list: */
-    QVector<QString> fileExtensions;
-    QVector<KDeviceType> deviceTypes;
-    CMediumFormat mediumFormat(mediumFormatRef);
-    mediumFormat.DescribeFileExtensions(fileExtensions, deviceTypes);
-    for (int i = 0; i < fileExtensions.size(); ++i)
-        if (deviceTypes[i] == KDeviceType_HardDisk)
-            return fileExtensions[i].toLower();
+    if (!mediumFormatRef.isNull())
+    {
+        /* Load extension / device list: */
+        QVector<QString> fileExtensions;
+        QVector<KDeviceType> deviceTypes;
+        CMediumFormat mediumFormat(mediumFormatRef);
+        mediumFormat.DescribeFileExtensions(fileExtensions, deviceTypes);
+        for (int i = 0; i < fileExtensions.size(); ++i)
+            if (deviceTypes[i] == KDeviceType_HardDisk)
+                return fileExtensions[i].toLower();
+    }
     AssertMsgFailed(("Extension can't be NULL!\n"));
     return QString();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp	(revision 87849)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.cpp	(revision 87850)
@@ -47,4 +47,8 @@
 UIWizardNewVDPageExpert::UIWizardNewVDPageExpert(const QString &strDefaultName, const QString &strDefaultPath, qulonglong uDefaultSize)
     : UIWizardNewVDPage3(strDefaultName, strDefaultPath)
+    , m_pFormatGroupBox(0)
+    , m_pVariantGroupBox(0)
+    , m_pLocationGroupBox(0)
+    , m_pSizeGroupBox(0)
 {
     /* Get default extension for new virtual-disk: */
@@ -52,17 +56,17 @@
     QGridLayout *pMainLayout = new QGridLayout(this);
     {
-        m_pLocationCnt = new QGroupBox(this);
-        {
-            m_pLocationCnt->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
-            QHBoxLayout *pLocationCntLayout = new QHBoxLayout(m_pLocationCnt);
+        m_pLocationGroupBox = new QGroupBox(this);
+        {
+            m_pLocationGroupBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
+            QHBoxLayout *pLocationGroupBoxLayout = new QHBoxLayout(m_pLocationGroupBox);
             {
-                m_pLocationEditor = new QLineEdit(m_pLocationCnt);
-                m_pLocationOpenButton = new QIToolButton(m_pLocationCnt);
+                m_pLocationEditor = new QLineEdit(m_pLocationGroupBox);
+                m_pLocationOpenButton = new QIToolButton(m_pLocationGroupBox);
                 {
                     m_pLocationOpenButton->setAutoRaise(true);
                     m_pLocationOpenButton->setIcon(UIIconPool::iconSet(":/select_file_16px.png", "select_file_disabled_16px.png"));
                 }
-                pLocationCntLayout->addWidget(m_pLocationEditor);
-                pLocationCntLayout->addWidget(m_pLocationOpenButton);
+                pLocationGroupBoxLayout->addWidget(m_pLocationEditor);
+                pLocationGroupBoxLayout->addWidget(m_pLocationOpenButton);
             }
         }
@@ -82,43 +86,5 @@
             m_pFormatGroupBox->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
             QVBoxLayout *pFormatGroupBoxLayout = new QVBoxLayout(m_pFormatGroupBox);
-            {
-                m_pFormatButtonGroup = new QButtonGroup(m_pFormatGroupBox);
-                {
-                    /* Enumerate medium formats in special order: */
-                    CSystemProperties properties = uiCommon().virtualBox().GetSystemProperties();
-                    const QVector<CMediumFormat> &formats = properties.GetMediumFormats();
-                    QMap<QString, CMediumFormat> vdi, preferred, others;
-                    foreach (const CMediumFormat &format, formats)
-                    {
-                        /* VDI goes first: */
-                        if (format.GetName() == "VDI")
-                            vdi[format.GetId()] = format;
-                        else
-                        {
-                            const QVector<KMediumFormatCapabilities> &capabilities = format.GetCapabilities();
-                            /* Then goes preferred: */
-                            if (capabilities.contains(KMediumFormatCapabilities_Preferred))
-                                preferred[format.GetId()] = format;
-                            /* Then others: */
-                            else
-                                others[format.GetId()] = format;
-                        }
-                    }
-
-                    /* Create buttons for VDI, preferred and others: */
-                    foreach (const QString &strId, vdi.keys())
-                        addFormatButton(this, pFormatGroupBoxLayout, vdi.value(strId), true);
-                    foreach (const QString &strId, preferred.keys())
-                        addFormatButton(this, pFormatGroupBoxLayout, preferred.value(strId), true);
-                    foreach (const QString &strId, others.keys())
-                        addFormatButton(this, pFormatGroupBoxLayout, others.value(strId));
-
-                    if (!m_pFormatButtonGroup->buttons().isEmpty())
-                    {
-                        m_pFormatButtonGroup->button(0)->click();
-                        m_pFormatButtonGroup->button(0)->setFocus();
-                    }
-                }
-            }
+            pFormatGroupBoxLayout->addWidget(createFormatButtonGroup(true));
         }
         m_pVariantGroupBox = new QGroupBox(this);
@@ -144,5 +110,5 @@
             }
         }
-        pMainLayout->addWidget(m_pLocationCnt, 0, 0, 1, 2);
+        pMainLayout->addWidget(m_pLocationGroupBox, 0, 0, 1, 2);
         pMainLayout->addWidget(m_pSizeGroupBox, 1, 0, 1, 2);
         pMainLayout->addWidget(m_pFormatGroupBox, 2, 0, Qt::AlignTop);
@@ -232,19 +198,30 @@
 {
     /* Translate widgets: */
-    m_pLocationCnt->setTitle(UIWizardNewVD::tr("File &location"));
-    m_pLocationOpenButton->setToolTip(UIWizardNewVD::tr("Choose a location for new virtual hard disk file..."));
-    m_pSizeGroupBox->setTitle(UIWizardNewVD::tr("File &size"));
-    m_pFormatGroupBox->setTitle(UIWizardNewVD::tr("Hard disk file &type"));
-    QList<QAbstractButton*> buttons = m_pFormatButtonGroup->buttons();
-    for (int i = 0; i < buttons.size(); ++i)
-    {
-        QAbstractButton *pButton = buttons[i];
-        UIMediumFormat enmFormat = gpConverter->fromInternalString<UIMediumFormat>(m_formatNames[m_pFormatButtonGroup->id(pButton)]);
-        pButton->setText(gpConverter->toString(enmFormat));
-    }
-    m_pVariantGroupBox->setTitle(UIWizardNewVD::tr("Storage on physical hard disk"));
-    m_pDynamicalButton->setText(UIWizardNewVD::tr("&Dynamically allocated"));
-    m_pFixedButton->setText(UIWizardNewVD::tr("&Fixed size"));
-    m_pSplitBox->setText(UIWizardNewVD::tr("&Split into files of less than 2GB"));
+    if (m_pLocationGroupBox)
+        m_pLocationGroupBox->setTitle(UIWizardNewVD::tr("File &location"));
+    if (m_pLocationOpenButton)
+        m_pLocationOpenButton->setToolTip(UIWizardNewVD::tr("Choose a location for new virtual hard disk file..."));
+    if (m_pSizeGroupBox)
+        m_pSizeGroupBox->setTitle(UIWizardNewVD::tr("File &size"));
+    if (m_pFormatGroupBox)
+        m_pFormatGroupBox->setTitle(UIWizardNewVD::tr("Hard disk file &type"));
+    if (m_pFormatButtonGroup)
+    {
+        QList<QAbstractButton*> buttons = m_pFormatButtonGroup->buttons();
+        for (int i = 0; i < buttons.size(); ++i)
+        {
+            QAbstractButton *pButton = buttons[i];
+            UIMediumFormat enmFormat = gpConverter->fromInternalString<UIMediumFormat>(m_formatNames[m_pFormatButtonGroup->id(pButton)]);
+            pButton->setText(gpConverter->toString(enmFormat));
+        }
+    }
+    if (m_pVariantGroupBox)
+        m_pVariantGroupBox->setTitle(UIWizardNewVD::tr("Storage on physical hard disk"));
+    if (m_pDynamicalButton)
+        m_pDynamicalButton->setText(UIWizardNewVD::tr("&Dynamically allocated"));
+    if (m_pFixedButton)
+        m_pFixedButton->setText(UIWizardNewVD::tr("&Fixed size"));
+    if (m_pSplitBox)
+        m_pSplitBox->setText(UIWizardNewVD::tr("&Split into files of less than 2GB"));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.h	(revision 87849)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvd/UIWizardNewVDPageExpert.h	(revision 87850)
@@ -80,5 +80,5 @@
     QGroupBox *m_pFormatGroupBox;
     QGroupBox *m_pVariantGroupBox;
-    QGroupBox *m_pLocationCnt;
+    QGroupBox *m_pLocationGroupBox;
     QGroupBox *m_pSizeGroupBox;
 };
