Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.cpp	(revision 89972)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.cpp	(revision 89978)
@@ -252,4 +252,62 @@
     /* Null by default: */
     return CCloudMachine();
+}
+
+CVirtualSystemDescription UICloudNetworkingStuff::createVirtualSystemDescription(QWidget *pParent /* = 0 */)
+{
+    /* Acquire VBox: */
+    CVirtualBox comVBox = uiCommon().virtualBox();
+    if (comVBox.isNotNull())
+    {
+        /* Create appliance: */
+        CAppliance comAppliance = comVBox.CreateAppliance();
+        if (!comVBox.isOk())
+            msgCenter().cannotCreateAppliance(comVBox, pParent);
+        else
+        {
+            /* Append it with one (1) description we need: */
+            comAppliance.CreateVirtualSystemDescriptions(1);
+            if (!comAppliance.isOk())
+                msgCenter().cannotCreateVirtualSystemDescription(comAppliance, pParent);
+            else
+            {
+                /* Get received description: */
+                const QVector<CVirtualSystemDescription> descriptions = comAppliance.GetVirtualSystemDescriptions();
+                AssertReturn(!descriptions.isEmpty(), CVirtualSystemDescription());
+                return descriptions.at(0);
+            }
+        }
+    }
+    /* Null by default: */
+    return CVirtualSystemDescription();
+}
+
+CVirtualSystemDescription UICloudNetworkingStuff::createVirtualSystemDescription(QString &strErrorMessage)
+{
+    /* Acquire VBox: */
+    CVirtualBox comVBox = uiCommon().virtualBox();
+    if (comVBox.isNotNull())
+    {
+        /* Create appliance: */
+        CAppliance comAppliance = comVBox.CreateAppliance();
+        if (!comVBox.isOk())
+            strErrorMessage = UIErrorString::formatErrorInfo(comVBox);
+        else
+        {
+            /* Append it with one (1) description we need: */
+            comAppliance.CreateVirtualSystemDescriptions(1);
+            if (!comAppliance.isOk())
+                strErrorMessage = UIErrorString::formatErrorInfo(comAppliance);
+            else
+            {
+                /* Get received description: */
+                QVector<CVirtualSystemDescription> descriptions = comAppliance.GetVirtualSystemDescriptions();
+                AssertReturn(!descriptions.isEmpty(), CVirtualSystemDescription());
+                return descriptions.at(0);
+            }
+        }
+    }
+    /* Null by default: */
+    return CVirtualSystemDescription();
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.h	(revision 89972)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.h	(revision 89978)
@@ -91,4 +91,9 @@
                                                         const QUuid &uMachineId,
                                                         QString &strErrorMessage);
+
+    /** Creates virtual system description, using @a pParent to show messages according to. */
+    SHARED_LIBRARY_STUFF CVirtualSystemDescription createVirtualSystemDescription(QWidget *pParent = 0);
+    /** Creates virtual system description, using @a strErrorMessage to store messages to. */
+    SHARED_LIBRARY_STUFF CVirtualSystemDescription createVirtualSystemDescription(QString &strErrorMessage);
 
     /** Acquires cloud providers, using @a pParent to show messages according to. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageBasic1.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageBasic1.cpp	(revision 89972)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVMPageBasic1.cpp	(revision 89978)
@@ -284,32 +284,8 @@
         do
         {
-            /* Create appliance: */
-            CVirtualBox comVBox = uiCommon().virtualBox();
-            CAppliance comAppliance = comVBox.CreateAppliance();
-            if (!comVBox.isOk())
-            {
-                msgCenter().cannotCreateAppliance(comVBox);
+            /* Create virtual system description: */
+            CVirtualSystemDescription comVSD = createVirtualSystemDescription(wizardImp());
+            if (comVSD.isNull())
                 break;
-            }
-
-            /* Create virtual system description: */
-            comAppliance.CreateVirtualSystemDescriptions(1);
-            if (!comAppliance.isOk())
-            {
-                msgCenter().cannotCreateVirtualSystemDescription(comAppliance);
-                break;
-            }
-
-            /* Acquire virtual system description: */
-            QVector<CVirtualSystemDescription> descriptions = comAppliance.GetVirtualSystemDescriptions();
-            if (!comAppliance.isOk())
-            {
-                msgCenter().cannotAcquireVirtualSystemDescription(comAppliance);
-                break;
-            }
-
-            /* Make sure there is at least one virtual system description created: */
-            AssertReturnVoid(!descriptions.isEmpty());
-            CVirtualSystemDescription comVSD = descriptions.at(0);
 
             /* Remember Virtual System Description: */
