Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 57896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 57897)
@@ -956,10 +956,4 @@
     retranslateUi();
 
-#ifdef Q_WS_MAC
-    /* Prepare Mac window-menu.
-     * Should go *after* translation! */
-    prepareMacWindowMenu();
-#endif /* Q_WS_MAC */
-
     /* Center according pseudo-parent widget: */
     VBoxGlobal::centerWidget(this, m_pPseudoParentWidget, false);
@@ -1081,9 +1075,9 @@
 void UIMediumManager::prepareMenuBar()
 {
-    /* Create menu-bar-menu: */
+    /* Create 'Actions' menu: */
     m_pMenu = menuBar()->addMenu(QString());
     AssertPtrReturnVoid(m_pMenu);
     {
-        /* Configure menu-bar-menu: */
+        /* Configure 'Actions' menu: */
         m_pMenu->addAction(m_pActionCopy);
         m_pMenu->addAction(m_pActionModify);
@@ -1092,4 +1086,11 @@
         m_pMenu->addAction(m_pActionRefresh);
     }
+
+#ifdef Q_WS_MAC
+    /* Prepare 'Window' menu: */
+    AssertPtrReturnVoid(gpWindowMenuManager);
+    menuBar()->addMenu(gpWindowMenuManager->createMenu(this));
+    gpWindowMenuManager->addWindow(this);
+#endif /* Q_WS_MAC */
 }
 
@@ -1329,13 +1330,4 @@
 }
 
-#ifdef Q_WS_MAC
-void UIMediumManager::prepareMacWindowMenu()
-{
-    /* Create window-menu for menu-bar: */
-    menuBar()->addMenu(UIWindowMenuManager::instance()->createMenu(this));
-    UIWindowMenuManager::instance()->addWindow(this);
-}
-#endif /* Q_WS_MAC */
-
 void UIMediumManager::repopulateTreeWidgets()
 {
@@ -1709,19 +1701,18 @@
 }
 
+void UIMediumManager::cleanupMenuBar()
+{
 #ifdef Q_WS_MAC
-void UIMediumManager::cleanupMacWindowMenu()
-{
-    /* Destroy window-menu of menu-bar: */
-    UIWindowMenuManager::instance()->removeWindow(this);
-    UIWindowMenuManager::instance()->destroyMenu(this);
-}
+    /* Cleanup 'Window' menu: */
+    AssertPtrReturnVoid(gpWindowMenuManager);
+    gpWindowMenuManager->removeWindow(this);
+    gpWindowMenuManager->destroyMenu(this);
 #endif /* Q_WS_MAC */
+}
 
 void UIMediumManager::cleanup()
 {
-#ifdef Q_WS_MAC
-    /* Cleanup Mac window-menu: */
-    cleanupMacWindowMenu();
-#endif /* Q_WS_MAC */
+    /* Cleanup menu-bar: */
+    cleanupMenuBar();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 57896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 57897)
@@ -134,8 +134,4 @@
     /** Prepare progress-bar. */
     void prepareProgressBar();
-#ifdef Q_WS_MAC
-    /** Mac OS X: Prepare <i>Window</i> menu. */
-    void prepareMacWindowMenu();
-#endif /* Q_WS_MAC */
 
     /** Repopulates tree-widgets content. */
@@ -164,8 +160,6 @@
     void updateInformationFieldsFD();
 
-#ifdef Q_WS_MAC
-    /** Mac OS X: Cleanup <i>Window</i> menu. */
-    void cleanupMacWindowMenu();
-#endif /* Q_WS_MAC */
+    /** Cleanup menu-bar. */
+    void cleanupMenuBar();
     /** General cleanup wrapper. */
     void cleanup();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.cpp	(revision 57896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.cpp	(revision 57897)
@@ -196,12 +196,11 @@
 
 /* static */
-UIWindowMenuManager* UIWindowMenuManager::instance()
-{
-    /* Make sure 'Window' menu Manager is created: */
-    if (!m_spInstance)
-        m_spInstance = new UIWindowMenuManager;
-
-    /* Return 'Window' menu Manager: */
-    return m_spInstance;
+void UIWindowMenuManager::create()
+{
+    /* Make sure 'Window' menu Manager is not created: */
+    AssertReturnVoid(!m_spInstance);
+
+    /* Create 'Window' menu Manager: */
+    new UIWindowMenuManager;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.h	(revision 57896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UIWindowMenuManager.h	(revision 57897)
@@ -38,8 +38,10 @@
 public:
 
-    /** Static constructor and instance provider. */
-    static UIWindowMenuManager* instance();
+    /** Static constructor. */
+    static void create();
     /** Static destructor. */
     static void destroy();
+    /** Static instance provider. */
+    static UIWindowMenuManager* instance() { return m_spInstance; }
 
     /** Creates 'Window' menu for passed @a pWindow. */
@@ -78,4 +80,6 @@
 };
 
+#define gpWindowMenuManager UIWindowMenuManager::instance()
+
 #endif /* !___UIWindowMenuManager_h___ */
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 57896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 57897)
@@ -1155,5 +1155,4 @@
 # endif /* MAC_LEOPARD_STYLE */
 
-    UIWindowMenuManager::instance()->addWindow(this);
     /* Beta label? */
     if (vboxGlobal().isBeta())
@@ -1212,5 +1211,8 @@
 
 #ifdef Q_WS_MAC
-    menuBar()->addMenu(UIWindowMenuManager::instance()->createMenu(this));
+    /* Prepare 'Window' menu: */
+    UIWindowMenuManager::create();
+    menuBar()->addMenu(gpWindowMenuManager->createMenu(this));
+    gpWindowMenuManager->addWindow(this);
 #endif /* Q_WS_MAC */
 
@@ -1707,4 +1709,9 @@
 void UISelectorWindow::cleanupMenuBar()
 {
+#ifdef Q_WS_MAC
+    /* Cleanup 'Window' menu: */
+    UIWindowMenuManager::destroy();
+#endif /* Q_WS_MAC */
+
     /* Destroy action-pool: */
     UIActionPool::destroy(m_pActionPool);
@@ -1715,8 +1722,4 @@
     /* Destroy event handlers: */
     UIVirtualBoxEventHandler::destroy();
-
-#ifdef Q_WS_MAC
-    UIWindowMenuManager::destroy();
-#endif /* Q_WS_MAC */
 
     /* Save settings: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h	(revision 57896)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.h	(revision 57897)
@@ -52,5 +52,5 @@
     /** Static destructor. */
     static void destroy();
-    /** Static instance. */
+    /** Static instance provider. */
     static UISelectorWindow* instance() { return m_spInstance; }
 
@@ -60,7 +60,5 @@
 protected:
 
-    /** Constructs selector-window.
-      * @param ppSelf brings the pointer to pointer to this window instance used by the external caller.
-      * @param flags  brings the selector-window flags dialogs should have. */
+    /** Constructs selector-window. */
     UISelectorWindow();
     /** Destructs selector-window. */
@@ -259,5 +257,5 @@
     /** @} */
 
-    /** Static instance. */
+    /** Holds the static instance. */
     static UISelectorWindow *m_spInstance;
 
