Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.cpp	(revision 79573)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.cpp	(revision 79574)
@@ -67,31 +67,41 @@
 bool UIWizardNewCloudVM::createCloudVM()
 {
-    /* Acquire prepared client and description: */
-    CCloudClient comCloudClient = field("client").value<CCloudClient>();
-    CVirtualSystemDescription comDescription = field("vsd").value<CVirtualSystemDescription>();
-    AssertReturn(comCloudClient.isNotNull() && comDescription.isNotNull(), false);
+    /* Prepare result: */
+    bool fResult = false;
 
-    /* Initiate cloud VM creation porocedure: */
-    CProgress comProgress = comCloudClient.LaunchVM(comDescription);
+    /* Main API request sequence, can be interrupted after any step: */
+    do
+    {
+        /* Acquire prepared client and description: */
+        CCloudClient comClient = field("client").value<CCloudClient>();
+        CVirtualSystemDescription comDescription = field("vsd").value<CVirtualSystemDescription>();
+        AssertReturn(comClient.isNotNull() && comDescription.isNotNull(), false);
 
-    /* Show error message if necessary: */
-    if (!comCloudClient.isOk())
-        msgCenter().cannotCreateCloudMachine(comCloudClient, this);
-    else
-    {
+        /* Initiate cloud VM creation procedure: */
+        CProgress comProgress = comClient.LaunchVM(comDescription);
+        if (!comClient.isOk())
+        {
+            msgCenter().cannotCreateCloudMachine(comClient, this);
+            break;
+        }
+
         /* Show "Create Cloud Machine" progress: */
-        msgCenter().showModalProgressDialog(comProgress, tr("Create Cloud Machine ..."), ":/progress_new_cloud_vm_90px.png", this, 0);
-        if (!comProgress.GetCanceled())
+        msgCenter().showModalProgressDialog(comProgress, tr("Create Cloud Machine ..."),
+                                            ":/progress_new_cloud_vm_90px.png", this, 0);
+        if (comProgress.GetCanceled())
+            break;
+        if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
         {
-            /* Show error message if necessary: */
-            if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
-                msgCenter().cannotCreateCloudMachine(comProgress, this);
-            else
-                return true;
+            msgCenter().cannotCreateCloudMachine(comProgress, this);
+            break;
         }
+
+        /* Finally, success: */
+        fResult = true;
     }
+    while (0);
 
-    /* Failure by default: */
-    return false;
+    /* Return result: */
+    return fResult;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.h	(revision 79573)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.h	(revision 79574)
@@ -51,5 +51,5 @@
     virtual void prepare() /* override */;
 
-    /** Create cloud VM. */
+    /** Create New Cloud VM. */
     bool createCloudVM();
 
