Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 87871)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.cpp	(revision 87872)
@@ -36,4 +36,5 @@
 #include "CBIOSSettings.h"
 #include "CGraphicsAdapter.h"
+#include "CMediumFormat.h"
 #include "CUSBController.h"
 #include "CUSBDeviceFilters.h"
@@ -175,4 +176,62 @@
 }
 
+bool UIWizardNewVM::createVirtualDisk()
+{
+    /* Gather attributes: */
+    CMediumFormat mediumFormat = field("mediumFormat").value<CMediumFormat>();
+    qulonglong uVariant = field("mediumVariant").toULongLong();
+    QString strMediumPath = field("mediumPath").toString();
+    qulonglong uSize = field("mediumSize").toULongLong();
+    /* Check attributes: */
+    AssertReturn(!strMediumPath.isNull(), false);
+    AssertReturn(uSize > 0, false);
+
+    /* Get VBox object: */
+    CVirtualBox vbox = uiCommon().virtualBox();
+
+    /* Create new virtual hard-disk: */
+    CMedium virtualDisk = vbox.CreateMedium(mediumFormat.GetName(), strMediumPath, KAccessMode_ReadWrite, KDeviceType_HardDisk);
+    if (!vbox.isOk())
+    {
+        msgCenter().cannotCreateHardDiskStorage(vbox, strMediumPath, this);
+        return false;
+    }
+
+    /* Compose medium-variant: */
+    QVector<KMediumVariant> variants(sizeof(qulonglong)*8);
+    for (int i = 0; i < variants.size(); ++i)
+    {
+        qulonglong temp = uVariant;
+        temp &= UINT64_C(1)<<i;
+        variants[i] = (KMediumVariant)temp;
+    }
+
+    /* Create base storage for the new virtual-disk: */
+    CProgress progress = virtualDisk.CreateBaseStorage(uSize, variants);
+    if (!virtualDisk.isOk())
+    {
+        msgCenter().cannotCreateHardDiskStorage(virtualDisk, strMediumPath, this);
+        return false;
+    }
+
+    /* Show creation progress: */
+    msgCenter().showModalProgressDialog(progress, windowTitle(), ":/progress_media_create_90px.png", this);
+    if (progress.GetCanceled())
+        return false;
+    if (!progress.isOk() || progress.GetResultCode() != 0)
+    {
+        msgCenter().cannotCreateHardDiskStorage(progress, strMediumPath, this);
+        return false;
+    }
+
+    /* Remember created virtual-disk: */
+    m_virtualDisk = virtualDisk;
+
+    /* Inform UICommon about it: */
+    uiCommon().createMedium(UIMedium(m_virtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created));
+
+    return true;
+}
+
 void UIWizardNewVM::configureVM(const QString &strGuestTypeId, const CGuestOSType &comGuestType)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 87871)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVM.h	(revision 87872)
@@ -28,4 +28,5 @@
 #include "COMEnums.h"
 #include "CMachine.h"
+#include "CMedium.h"
 
 /** Container for unattended install related data. */
@@ -89,9 +90,8 @@
 protected:
 
-    /* Creates a new VM: */
     bool createVM();
-    /* Configures the newly created VM: */
+    bool createVirtualDisk();
+
     void configureVM(const QString &strGuestTypeId, const CGuestOSType &comGuestType);
-    /* Attaches default devices: */
     bool attachDefaultDevices(const CGuestOSType &comGuestType);
 
@@ -129,4 +129,5 @@
     int m_iSASCount;
     int m_iUSBCount;
+    CMedium m_virtualDisk;
 
     mutable UIUnattendedInstallData m_unattendedInstallData;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic5.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic5.h	(revision 87871)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newvm/UIWizardNewVMPageBasic5.h	(revision 87872)
@@ -27,4 +27,5 @@
 /* GUI includes: */
 #include "UIWizardPage.h"
+#include "UIWizardNewVDPageBasic1.h"
 #include "UIWizardNewVDPageBasic2.h"
 #include "UIWizardNewVDPageBasic3.h"
@@ -32,5 +33,4 @@
 /* COM includes: */
 #include "COMEnums.h"
-#include "CMedium.h"
 
 /* Forward declarations: */
@@ -42,4 +42,5 @@
 
 class UIWizardNewVMPageBasic5 : public UIWizardPage,
+                                public UIWizardNewVDPage1,
                                 public UIWizardNewVDPage2,
                                 public UIWizardNewVDPage3
