Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp	(revision 90300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.cpp	(revision 90301)
@@ -4149,4 +4149,10 @@
 }
 
+void UICommon::sltHandleMediumCreated(const CMedium &comMedium)
+{
+    /* Make sure we cached created medium in GUI: */
+    createMedium(UIMedium(comMedium, UIMediumDeviceType_HardDisk, KMediumState_Created));
+}
+
 bool UICommon::eventFilter(QObject *pObject, QEvent *pEvent)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h	(revision 90300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UICommon.h	(revision 90301)
@@ -729,4 +729,10 @@
     /** @} */
 
+    /** @name Media related stuff.
+     * @{ */
+        /** Handles signal about medium was created. */
+        void sltHandleMediumCreated(const CMedium &comMedium);
+    /** @} */
+
 protected:
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90301)
@@ -19,4 +19,8 @@
 #include "UINotificationObjects.h"
 
+
+/*********************************************************************************************************************************
+*   Class UINotificationProgressMediumMove implementation.                                                                       *
+*********************************************************************************************************************************/
 
 UINotificationProgressMediumMove::UINotificationProgressMediumMove(const CMedium &comMedium,
@@ -48,2 +52,45 @@
     return comProgress;
 }
+
+
+/*********************************************************************************************************************************
+*   Class UINotificationProgressMediumCopy implementation.                                                                       *
+*********************************************************************************************************************************/
+
+UINotificationProgressMediumCopy::UINotificationProgressMediumCopy(const CMedium &comSource,
+                                                                   const CMedium &comTarget,
+                                                                   const QVector<KMediumVariant> &variants)
+    : m_comSource(comSource)
+    , m_comTarget(comTarget)
+    , m_variants(variants)
+{
+    connect(this, &UINotificationProgress::sigProgressFinished,
+            this, &UINotificationProgressMediumCopy::sltHandleProgressFinished);
+}
+
+QString UINotificationProgressMediumCopy::name() const
+{
+    return UINotificationProgress::tr("Copying medium ...");
+}
+
+QString UINotificationProgressMediumCopy::details() const
+{
+    return UINotificationProgress::tr("<b>From</b>: %1<br><b>To</b>: %2")
+                                     .arg(m_comSource.GetLocation(), m_comTarget.GetLocation());
+}
+
+CProgress UINotificationProgressMediumCopy::createProgress(COMResult &comResult)
+{
+    /* Initialize progress-wrapper: */
+    CProgress comProgress = m_comSource.CloneTo(m_comTarget, m_variants, CMedium());
+    /* Store COM result: */
+    comResult = m_comSource;
+    /* Return progress-wrapper: */
+    return comProgress;
+}
+
+void UINotificationProgressMediumCopy::sltHandleProgressFinished()
+{
+    if (m_comTarget.isNotNull() && !m_comTarget.GetId().isNull())
+        emit sigMediumCopied(m_comTarget);
+}
Index: /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90301)
@@ -63,3 +63,47 @@
 };
 
+/** UINotificationProgress extension for medium copy functionality. */
+class SHARED_LIBRARY_STUFF UINotificationProgressMediumCopy : public UINotificationProgress
+{
+    Q_OBJECT;
+
+signals:
+
+    /** Notifies listeners about @a comMedium was copied. */
+    void sigMediumCopied(const CMedium &comMedium);
+
+public:
+
+    /** Constructs medium move notification-progress.
+      * @param  comSource  Brings the medium being copied.
+      * @param  comTarget  Brings the medium being the target.
+      * @param  variants   Brings the target medium options. */
+    UINotificationProgressMediumCopy(const CMedium &comSource,
+                                     const CMedium &comTarget,
+                                     const QVector<KMediumVariant> &variants);
+
+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 medium being copied. */
+    CMedium                  m_comSource;
+    /** Holds the medium being the target. */
+    CMedium                  m_comTarget;
+    /** Holds the target medium options. */
+    QVector<KMediumVariant>  m_variants;
+};
+
 #endif /* !FEQT_INCLUDED_SRC_notificationcenter_UINotificationObjects_h */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVD.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVD.cpp	(revision 90300)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/clonevd/UIWizardCloneVD.cpp	(revision 90301)
@@ -20,4 +20,5 @@
 #include "UIMedium.h"
 #include "UIMessageCenter.h"
+#include "UINotificationCenter.h"
 #include "UIWizardCloneVD.h"
 #include "UIWizardCloneVDPageBasic1.h"
@@ -75,24 +76,11 @@
     }
 
-    /* Copy source image to new one: */
-    CProgress comProgress = m_comSourceVirtualDisk.CloneTo(comVirtualDisk, variants, CMedium());
-    if (!m_comSourceVirtualDisk.isOk())
-    {
-        msgCenter().cannotCreateMediumStorage(m_comSourceVirtualDisk, strMediumPath, this);
-        return false;
-    }
-
-    /* Show creation progress: */
-    msgCenter().showModalProgressDialog(comProgress, windowTitle(), ":/progress_media_create_90px.png", this);
-    if (comProgress.GetCanceled())
-        return false;
-    if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
-    {
-        msgCenter().cannotCreateMediumStorage(comProgress, strMediumPath, this);
-        return false;
-    }
-
-    /* Make sure we register the medium to VBox: */
-    uiCommon().createMedium(UIMedium(comVirtualDisk, UIMediumDeviceType_HardDisk, KMediumState_Created));
+    /* Copy medium: */
+    UINotificationProgressMediumCopy *pNotification = new UINotificationProgressMediumCopy(m_comSourceVirtualDisk,
+                                                                                           comVirtualDisk,
+                                                                                           variants);
+    connect(pNotification, &UINotificationProgressMediumCopy::sigMediumCopied,
+            &uiCommon(), &UICommon::sltHandleMediumCreated);
+    notificationCenter().append(pNotification);
 
     /* Positive: */
