Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 44952)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 44954)
@@ -25,4 +25,7 @@
 #include <QPainter>
 #include <QTimer>
+#ifdef Q_WS_MAC
+# include <QMenuBar>
+#endif /* Q_WS_MAC */
 
 /* GUI includes: */
@@ -173,4 +176,6 @@
 
 #ifdef Q_WS_MAC
+    /* Prepare menu-bar: */
+    prepareMenuBar();
     /* Prepare dock: */
     prepareDock();
@@ -204,4 +209,6 @@
     /* Cleanup dock: */
     cleanupDock();
+    /* Cleanup menu-bar: */
+    cleanupMenuBar();
 #endif /* Q_WS_MAC */
 
@@ -467,4 +474,5 @@
 #endif /* VBOX_WITH_DEBUGGER_GUI */
 #ifdef Q_WS_MAC
+    , m_pMenuBar(0)
     , m_fIsDockIconEnabled(true)
     , m_pDockIconPreview(0)
@@ -721,4 +729,9 @@
 
 #ifdef Q_WS_MAC
+void UIMachineLogic::prepareMenuBar()
+{
+    m_pMenuBar = uisession()->newMenuBar();
+}
+
 void UIMachineLogic::prepareDock()
 {
@@ -833,4 +846,10 @@
         m_pDockIconPreview = 0;
     }
+}
+
+void UIMachineLogic::cleanupMenuBar()
+{
+    delete m_pMenuBar;
+    m_pMenuBar = 0;
 }
 #endif /* Q_WS_MAC */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 44952)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h	(revision 44954)
@@ -44,4 +44,7 @@
 class CUSBDevice;
 class CVirtualBoxErrorInfo;
+#ifdef Q_WS_MAC
+class QMenuBar;
+#endif /* Q_WS_MAC */
 
 /* Machine logic interface: */
@@ -130,4 +133,5 @@
     virtual void prepareMachineWindows() = 0;
 #ifdef Q_WS_MAC
+    virtual void prepareMenuBar();
     virtual void prepareDock();
 #endif /* Q_WS_MAC */
@@ -142,4 +146,5 @@
 #ifdef Q_WS_MAC
     virtual void cleanupDock();
+    virtual void cleanupMenuBar();
 #endif /* Q_WS_MAC */
     virtual void cleanupMachineWindows() = 0;
@@ -235,4 +240,5 @@
 
 #ifdef Q_WS_MAC
+    QMenuBar *m_pMenuBar;
     bool m_fIsDockIconEnabled;
     UIDockIconPreview *m_pDockIconPreview;
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 44952)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/fullscreen/UIMachineWindowFullscreen.cpp	(revision 44954)
@@ -70,7 +70,4 @@
 
     /* Prepare menu: */
-#ifdef Q_WS_MAC
-    setMenuBar(uisession()->newMenuBar());
-#endif /* Q_WS_MAC */
     m_pMainMenu = uisession()->newMenu();
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 44952)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineWindowNormal.cpp	(revision 44954)
@@ -198,6 +198,8 @@
     UIMachineWindow::prepareMenu();
 
+#ifndef Q_WS_MAC
     /* Prepare menu-bar: */
     setMenuBar(uisession()->newMenuBar());
+#endif /* !Q_WS_MAC */
 }
 
@@ -425,5 +427,7 @@
     {
         VBoxGlobalSettings settings = vboxGlobal().settings();
+#ifndef Q_WS_MAC
         menuBar()->setHidden(settings.isFeatureActive("noMenuBar"));
+#endif /* !Q_WS_MAC */
         statusBar()->setHidden(settings.isFeatureActive("noStatusBar"));
         if (statusBar()->isHidden())
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 44952)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/scale/UIMachineWindowScale.cpp	(revision 44954)
@@ -78,7 +78,5 @@
     UIMachineWindow::prepareMenu();
 
-#ifdef Q_WS_MAC
-    setMenuBar(uisession()->newMenuBar());
-#endif /* Q_WS_MAC */
+    /* Prepare menu: */
     m_pMainMenu = uisession()->newMenu();
 }
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 44952)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.cpp	(revision 44954)
@@ -87,7 +87,4 @@
 
     /* Prepare menu: */
-#ifdef Q_WS_MAC
-    setMenuBar(uisession()->newMenuBar());
-#endif /* Q_WS_MAC */
     m_pMainMenu = uisession()->newMenu();
 }
@@ -155,18 +152,4 @@
 }
 #endif /* !Q_WS_MAC */
-
-#ifdef Q_WS_MAC
-void UIMachineWindowSeamless::loadSettings()
-{
-    /* Call to base-class: */
-    UIMachineWindow::loadSettings();
-
-    /* Load global settings: */
-    {
-        VBoxGlobalSettings settings = vboxGlobal().settings();
-        menuBar()->setHidden(settings.isFeatureActive("noMenuBar"));
-    }
-}
-#endif /* Q_WS_MAC */
 
 #ifndef Q_WS_MAC
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.h	(revision 44952)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineWindowSeamless.h	(revision 44954)
@@ -64,12 +64,6 @@
     void prepareMiniToolbar();
 #endif /* !Q_WS_MAC */
-#ifdef Q_WS_MAC
-    void loadSettings();
-#endif /* Q_WS_MAC */
 
     /* Cleanup helpers: */
-#ifdef Q_WS_MAC
-    //void saveSettings() {}
-#endif /* Q_WS_MAC */
 #ifndef Q_WS_MAC
     void cleanupMiniToolbar();
