Index: /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90320)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90321)
@@ -142,2 +142,58 @@
         emit sigCloudMachineAdded(m_strShortProviderName, m_strProfileName, m_comMachine);
 }
+
+
+/*********************************************************************************************************************************
+*   Class UINotificationProgressCloudMachineCreate implementation.                                                               *
+*********************************************************************************************************************************/
+
+UINotificationProgressCloudMachineCreate::UINotificationProgressCloudMachineCreate(const CCloudClient &comClient,
+                                                                                   const CCloudMachine &comMachine,
+                                                                                   const CVirtualSystemDescription &comVSD,
+                                                                                   const QString &strShortProviderName,
+                                                                                   const QString &strProfileName)
+    : m_comClient(comClient)
+    , m_comMachine(comMachine)
+    , m_comVSD(comVSD)
+    , m_strShortProviderName(strShortProviderName)
+    , m_strProfileName(strProfileName)
+{
+    /* Parse cloud VM name: */
+    QVector<KVirtualSystemDescriptionType> types;
+    QVector<QString> refs, origValues, configValues, extraConfigValues;
+    m_comVSD.GetDescriptionByType(KVirtualSystemDescriptionType_Name, types,
+                                  refs, origValues, configValues, extraConfigValues);
+    if (!origValues.isEmpty())
+        m_strName = origValues.first();
+
+    /* Listen for last progress signal: */
+    connect(this, &UINotificationProgress::sigProgressFinished,
+            this, &UINotificationProgressCloudMachineCreate::sltHandleProgressFinished);
+}
+
+QString UINotificationProgressCloudMachineCreate::name() const
+{
+    return UINotificationProgress::tr("Creating cloud VM ...");
+}
+
+QString UINotificationProgressCloudMachineCreate::details() const
+{
+    return UINotificationProgress::tr("<b>Provider:</b> %1<br><b>Profile:</b> %2<br><b>Name:</b> %3")
+                                      .arg(m_strShortProviderName, m_strProfileName, m_strName);
+}
+
+CProgress UINotificationProgressCloudMachineCreate::createProgress(COMResult &comResult)
+{
+    /* Initialize progress-wrapper: */
+    CProgress comProgress = m_comClient.CreateCloudMachine(m_comVSD, m_comMachine);
+    /* Store COM result: */
+    comResult = m_comClient;
+    /* Return progress-wrapper: */
+    return comProgress;
+}
+
+void UINotificationProgressCloudMachineCreate::sltHandleProgressFinished()
+{
+    if (m_comMachine.isNotNull() && !m_comMachine.GetId().isNull())
+        emit sigCloudMachineCreated(m_strShortProviderName, m_strProfileName, m_comMachine);
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90320)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90321)
@@ -30,4 +30,5 @@
 #include "CCloudMachine.h"
 #include "CMedium.h"
+#include "CVirtualSystemDescription.h"
 
 /** UINotificationProgress extension for medium move functionality. */
@@ -165,3 +166,61 @@
 };
 
+/** UINotificationProgress extension for cloud machine create functionality. */
+class SHARED_LIBRARY_STUFF UINotificationProgressCloudMachineCreate : public UINotificationProgress
+{
+    Q_OBJECT;
+
+signals:
+
+    /** Notifies listeners about cloud @a comMachine was created.
+      * @param  strShortProviderName  Brigns the short provider name.
+      * @param  strProfileName        Brings the profile name. */
+    void sigCloudMachineCreated(const QString &strShortProviderName,
+                                const QString &strProfileName,
+                                const CCloudMachine &comMachine);
+
+public:
+
+    /** Constructs cloud machine create notification-progress.
+      * @param  comClient             Brings the cloud client being adding machine.
+      * @param  comMachine            Brings the cloud machine being added.
+      * @param  comVSD                Brings the virtual system description.
+      * @param  strShortProviderName  Brings the short provider name.
+      * @param  strProfileName        Brings the profile name. */
+    UINotificationProgressCloudMachineCreate(const CCloudClient &comClient,
+                                             const CCloudMachine &comMachine,
+                                             const CVirtualSystemDescription &comVSD,
+                                             const QString &strShortProviderName,
+                                             const QString &strProfileName);
+
+protected:
+
+    /** Returns object name. */
+    virtual QString name() const /* override final */;
+    /** Returns object details. */
+    virtual QString details() const /* override final */;
+    /** Creates and returns started progress-wrapper. */
+    virtual CProgress createProgress(COMResult &comResult) /* override final */;
+
+private slots:
+
+    /** Handles signal about progress being finished. */
+    void sltHandleProgressFinished();
+
+private:
+
+    /** Holds the cloud client being adding machine. */
+    CCloudClient               m_comClient;
+    /** Holds the cloud machine being added. */
+    CCloudMachine              m_comMachine;
+    /** Holds the the virtual system description. */
+    CVirtualSystemDescription  m_comVSD;
+    /** Holds the name acquired from VSD. */
+    QString                    m_strName;
+    /** Holds the short provider name. */
+    QString                    m_strShortProviderName;
+    /** Holds the profile name. */
+    QString                    m_strProfileName;
+};
+
 #endif /* !FEQT_INCLUDED_SRC_notificationcenter_UINotificationObjects_h */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.cpp	(revision 90320)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/newcloudvm/UIWizardNewCloudVM.cpp	(revision 90321)
@@ -22,4 +22,5 @@
 #include "UICommon.h"
 #include "UIMessageCenter.h"
+#include "UINotificationCenter.h"
 #include "UIWizardNewCloudVM.h"
 #include "UIWizardNewCloudVMPageBasic1.h"
@@ -118,35 +119,17 @@
     /* Initiate cloud VM creation procedure: */
     CCloudMachine comMachine;
-    CProgress comProgress = comClient.CreateCloudMachine(comVSD, comMachine);
-    /* Check for immediate errors: */
-    if (!comClient.isOk())
-        msgCenter().cannotCreateCloudMachine(comClient, this);
-    else
-    {
-        /* Show "Create Cloud Machine" progress: */
-        msgCenter().showModalProgressDialog(comProgress, QString(),
-                                            ":/progress_new_cloud_vm_90px.png", this, 0);
-        /* Check for canceled progress: */
-        if (!comProgress.GetCanceled())
-        {
-            /* Check for progress errors: */
-            if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
-                msgCenter().cannotCreateCloudMachine(comProgress, this);
-            else
-            {
-                /* Check whether VM really added: */
-                if (comMachine.isNotNull())
-                {
-                    /* Notify GUI about VM was added: */
-                    uiCommon().notifyCloudMachineRegistered(shortProviderName(),
-                                                            profileName(),
-                                                            comMachine);
 
-                    /* Finally, success: */
-                    fResult = true;
-                }
-            }
-        }
-    }
+    /* Create cloud VM: */
+    UINotificationProgressCloudMachineCreate *pNotification = new UINotificationProgressCloudMachineCreate(comClient,
+                                                                                                           comMachine,
+                                                                                                           comVSD,
+                                                                                                           shortProviderName(),
+                                                                                                           profileName());
+    connect(pNotification, &UINotificationProgressCloudMachineCreate::sigCloudMachineCreated,
+            &uiCommon(), &UICommon::sltHandleCloudMachineAdded);
+    notificationCenter().append(pNotification);
+
+    /* Positive: */
+    fResult = true;
 
     /* Return result: */
