Index: trunk/src/VBox/Frontends/VirtualBox/src/networking/UIDownloaderExtensionPack.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/networking/UIDownloaderExtensionPack.cpp	(revision 90559)
+++ trunk/src/VBox/Frontends/VirtualBox/src/networking/UIDownloaderExtensionPack.cpp	(revision 90560)
@@ -34,21 +34,6 @@
 
 
-/* static */
-UIDownloaderExtensionPack *UIDownloaderExtensionPack::s_pInstance = 0;
-
-/* static */
-UIDownloaderExtensionPack *UIDownloaderExtensionPack::create()
-{
-    if (!s_pInstance)
-        s_pInstance = new UIDownloaderExtensionPack;
-    return s_pInstance;
-}
-
 UIDownloaderExtensionPack::UIDownloaderExtensionPack()
 {
-    /* Prepare instance: */
-    if (!s_pInstance)
-        s_pInstance = this;
-
     /* Get version number and adjust it for test and trunk builds. The server only has official releases. */
     const QString strVersion = UIVersion(uiCommon().vboxVersionStringNormalized()).effectiveReleasedVersion().toString();
@@ -66,11 +51,4 @@
     setTarget(strTarget);
     setPathSHA256SumsFile(strPathSHA256SumsFile);
-}
-
-UIDownloaderExtensionPack::~UIDownloaderExtensionPack()
-{
-    /* Cleanup instance: */
-    if (s_pInstance == this)
-        s_pInstance = 0;
 }
 
@@ -187,3 +165,2 @@
     }
 }
-
Index: trunk/src/VBox/Frontends/VirtualBox/src/networking/UIDownloaderExtensionPack.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/networking/UIDownloaderExtensionPack.h	(revision 90559)
+++ trunk/src/VBox/Frontends/VirtualBox/src/networking/UIDownloaderExtensionPack.h	(revision 90560)
@@ -43,15 +43,8 @@
 public:
 
-    /** Creates downloader instance. */
-    static UIDownloaderExtensionPack *create();
-    /** Returns current downloader instance. */
-    static UIDownloaderExtensionPack *current() { return s_pInstance; }
+    /** Constructs downloader. */
+    UIDownloaderExtensionPack();
 
 private:
-
-    /** Constructs downloader. */
-    UIDownloaderExtensionPack();
-    /** Destructs downloader. */
-    ~UIDownloaderExtensionPack();
 
     /** Returns description of the current network operation. */
@@ -65,7 +58,4 @@
     virtual void handleVerifiedObject(UINetworkReply *pReply) /* override */;
 
-    /** Holds the static singleton instance. */
-    static UIDownloaderExtensionPack *s_pInstance;
-
     /** Holds the cached received data awaiting for verification. */
     QByteArray m_receivedData;
@@ -73,3 +63,2 @@
 
 #endif /* !FEQT_INCLUDED_SRC_networking_UIDownloaderExtensionPack_h */
-
Index: trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateManager.cpp	(revision 90559)
+++ trunk/src/VBox/Frontends/VirtualBox/src/networking/UIUpdateManager.cpp	(revision 90560)
@@ -27,5 +27,4 @@
 #include "UICommon.h"
 #include "VBoxUtils.h"
-#include "UIDownloaderExtensionPack.h"
 #include "UIExtraDataManager.h"
 #include "UIMessageCenter.h"
@@ -420,5 +419,5 @@
 
     /* Return if already downloading: */
-    if (UIDownloaderExtensionPack::current())
+    if (UINotificationDownloaderExtensionPack::exists())
     {
         emit sigStepComplete();
@@ -491,5 +490,5 @@
 
     /* Download extension pack: */
-    UINotificationDownloaderExtensionPack *pNotification = new UINotificationDownloaderExtensionPack(GUI_ExtPackName);
+    UINotificationDownloaderExtensionPack *pNotification = UINotificationDownloaderExtensionPack::instance(GUI_ExtPackName);
     /* After downloading finished => propose to install the Extension Pack: */
     connect(pNotification, &UINotificationDownloaderExtensionPack::sigExtensionPackDownloaded,
Index: trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90559)
+++ trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90560)
@@ -1492,7 +1492,30 @@
 *********************************************************************************************************************************/
 
+/* static */
+UINotificationDownloaderExtensionPack *UINotificationDownloaderExtensionPack::s_pInstance = 0;
+
+/* static */
+UINotificationDownloaderExtensionPack *UINotificationDownloaderExtensionPack::instance(const QString &strPackName)
+{
+    if (!s_pInstance)
+        new UINotificationDownloaderExtensionPack(strPackName);
+    return s_pInstance;
+}
+
+/* static */
+bool UINotificationDownloaderExtensionPack::exists()
+{
+    return !!s_pInstance;
+}
+
 UINotificationDownloaderExtensionPack::UINotificationDownloaderExtensionPack(const QString &strPackName)
     : m_strPackName(strPackName)
 {
+    s_pInstance = this;
+}
+
+UINotificationDownloaderExtensionPack::~UINotificationDownloaderExtensionPack()
+{
+    s_pInstance = 0;
 }
 
@@ -1510,5 +1533,5 @@
 {
     /* Create and configure the Extension Pack downloader: */
-    UIDownloaderExtensionPack *pDownloader = UIDownloaderExtensionPack::create();
+    UIDownloaderExtensionPack *pDownloader = new UIDownloaderExtensionPack;
     if (pDownloader)
     {
Index: trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90559)
+++ trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90560)
@@ -1118,5 +1118,5 @@
 };
 
-/** UINotificationDownloader extension for Extension Pack downloading functionality. */
+/** UINotificationDownloader extension for extension pack downloading functionality. */
 class SHARED_LIBRARY_STUFF UINotificationDownloaderExtensionPack : public UINotificationDownloader
 {
@@ -1135,9 +1135,20 @@
 public:
 
-    /** Constructs host-only network interface remove notification-progress. */
+    /** Returns singleton instance, creates if necessary.
+      * @param  strPackName  Brings the package name. */
+    static UINotificationDownloaderExtensionPack *instance(const QString &strPackName);
+    /** Returns whether singleton instance already created. */
+    static bool exists();
+
+    /** Destructs extension pack downloading notification-progress.
+      * @note  Notification-center can destroy us at any time. */
+    virtual ~UINotificationDownloaderExtensionPack() /* override final */;
+
+protected:
+
+    /** Constructs extension pack downloading notification-progress.
+      * @param  strPackName  Brings the package name. */
     UINotificationDownloaderExtensionPack(const QString &strPackName);
 
-protected:
-
     /** Returns object name. */
     virtual QString name() const /* override final */;
@@ -1149,5 +1160,8 @@
 private:
 
-    /** Holds the pack being dowloaded. */
+    /** Holds the singleton instance. */
+    static UINotificationDownloaderExtensionPack *s_pInstance;
+
+    /** Holds the name of pack being dowloaded. */
     QString  m_strPackName;
 };
