Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 83675)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp	(revision 83676)
@@ -938,4 +938,27 @@
         /* Execute wizard: */
         pWizard->exec();
+
+        // WORKAROUND:
+        // Hehey! Now we have to inject created VM nodes and then rebuild tree for the main root node ourselves
+        // cause there is no corresponding event yet. Later this to be done in corresponding event handler instead.
+        foreach (const CCloudMachine &comMachine, pWizard->machines())
+        {
+            // Create new node:
+            UIChooserNodeMachine *pNode = new UIChooserNodeMachine(pGroup->node(),
+                                                                   false /* favorite */,
+                                                                   pGroup->node()->nodes().size() /* position */,
+                                                                   comMachine);
+            // Request async node update:
+            pNode->cache()->toCloud()->updateInfoAsync(false /* delayed? */);
+        }
+        // Remember first selected item definition:
+        const QString strDefinition = firstSelectedItem()->definition();
+        // Rebuild tree for main root:
+        buildTreeForMainRoot();
+        updateNavigationItemList();
+        updateLayout();
+        // Restore selection:
+        setSelectedItem(strDefinition);
+
         delete pWizard;
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.cpp	(revision 83675)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.cpp	(revision 83676)
@@ -23,5 +23,4 @@
 
 /* COM includes: */
-#include "CCloudMachine.h"
 #include "CProgress.h"
 
@@ -69,36 +68,54 @@
 bool UIWizardAddCloudVM::addCloudVMs()
 {
-    /* Acquire prepared client and description: */
+    /* Prepare result: */
+    bool fResult = false;
+
+    /* Acquire prepared client: */
     CCloudClient comClient = client();
-    AssertReturn(comClient.isNotNull(), false);
+    AssertReturn(comClient.isNotNull(), fResult);
 
     /* For each cloud instance name we have: */
     foreach (const QString &strInstanceName, field("instanceIds").toStringList())
     {
+        /* Initiate cloud VM add procedure: */
         CCloudMachine comMachine;
-
-        /* Initiate cloud VM add procedure: */
         CProgress comProgress = comClient.AddCloudMachine(strInstanceName, comMachine);
-        RT_NOREF(comMachine);
+        /* Check for immediate errors: */
         if (!comClient.isOk())
         {
             msgCenter().cannotCreateCloudMachine(comClient, this);
-            return false;
+            break;
         }
-
-        /* Show "Add cloud machine" progress: */
-        msgCenter().showModalProgressDialog(comProgress, tr("Add cloud machine ..."),
-                                            ":/progress_new_cloud_vm_90px.png", this, 0);
-        if (comProgress.GetCanceled())
-            return false;
-        if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
+        else
         {
-            msgCenter().cannotCreateCloudMachine(comProgress, this);
-            return false;
+            /* Show "Add cloud machine" progress: */
+            msgCenter().showModalProgressDialog(comProgress, tr("Add cloud machine ..."),
+                                                ":/progress_new_cloud_vm_90px.png", this, 0);
+            /* Check for canceled progress: */
+            if (comProgress.GetCanceled())
+                break;
+            else
+            {
+                /* Check for progress errors: */
+                if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
+                {
+                    msgCenter().cannotCreateCloudMachine(comProgress, this);
+                    break;
+                }
+                else
+                {
+                    /* Check whether VM really added: */
+                    if (comMachine.isNotNull())
+                    {
+                        m_machines << comMachine;
+                        fResult = true;
+                    }
+                }
+            }
         }
     }
 
-    /* Success by default: */
-    return true;
+    /* Return result: */
+    return fResult;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.h	(revision 83675)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/addcloudvm/UIWizardAddCloudVM.h	(revision 83676)
@@ -28,4 +28,5 @@
 #include "COMEnums.h"
 #include "CCloudClient.h"
+#include "CCloudMachine.h"
 
 /** Add Cloud VM wizard. */
@@ -57,8 +58,11 @@
     virtual void prepare() /* override */;
 
-    /** Defines Cloud @a comClient object. */
+    /** Defines Cloud @a comClient object wrapper. */
     void setClient(const CCloudClient &comClient) { m_comClient = comClient; }
-    /** Returns Cloud Client object. */
+    /** Returns Cloud Client object wrapper. */
     CCloudClient client() const { return m_comClient; }
+
+    /** Returns Cloud Machine object wrapper list. */
+    QList<CCloudMachine> machines() const { return m_machines; }
 
     /** Adds cloud VMs. */
@@ -74,4 +78,7 @@
     /** Holds the Cloud Client object wrapper. */
     CCloudClient  m_comClient;
+
+    /** Holds the Cloud Machine object wrapper list. */
+    QList<CCloudMachine>  m_machines;
 };
 
