Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp	(revision 52556)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendGlobal.cpp	(revision 52557)
@@ -453,12 +453,15 @@
     switch (runtimeMenuType)
     {
-        case UIExtraDataMetaDefs::RuntimeMenuType_Machine: strResult = "Machine"; break;
-        case UIExtraDataMetaDefs::RuntimeMenuType_View:    strResult = "View"; break;
-        case UIExtraDataMetaDefs::RuntimeMenuType_Devices: strResult = "Devices"; break;
+#ifdef RT_OS_DARWIN
+        case UIExtraDataMetaDefs::RuntimeMenuType_Application: strResult = "Application"; break;
+#endif /* RT_OS_DARWIN */
+        case UIExtraDataMetaDefs::RuntimeMenuType_Machine:     strResult = "Machine"; break;
+        case UIExtraDataMetaDefs::RuntimeMenuType_View:        strResult = "View"; break;
+        case UIExtraDataMetaDefs::RuntimeMenuType_Devices:     strResult = "Devices"; break;
 #ifdef VBOX_WITH_DEBUGGER_GUI
-        case UIExtraDataMetaDefs::RuntimeMenuType_Debug:   strResult = "Debug"; break;
+        case UIExtraDataMetaDefs::RuntimeMenuType_Debug:       strResult = "Debug"; break;
 #endif /* VBOX_WITH_DEBUGGER_GUI */
-        case UIExtraDataMetaDefs::RuntimeMenuType_Help:    strResult = "Help"; break;
-        case UIExtraDataMetaDefs::RuntimeMenuType_All:     strResult = "All"; break;
+        case UIExtraDataMetaDefs::RuntimeMenuType_Help:        strResult = "Help"; break;
+        case UIExtraDataMetaDefs::RuntimeMenuType_All:         strResult = "All"; break;
         default:
         {
@@ -475,13 +478,16 @@
     /* Here we have some fancy stuff allowing us
      * to search through the keys using 'case-insensitive' rule: */
-    QStringList keys;  QList<UIExtraDataMetaDefs::RuntimeMenuType> values;
-    keys << "Machine"; values << UIExtraDataMetaDefs::RuntimeMenuType_Machine;
-    keys << "View";    values << UIExtraDataMetaDefs::RuntimeMenuType_View;
-    keys << "Devices"; values << UIExtraDataMetaDefs::RuntimeMenuType_Devices;
+    QStringList keys;      QList<UIExtraDataMetaDefs::RuntimeMenuType> values;
+#ifdef RT_OS_DARWIN
+    keys << "Application"; values << UIExtraDataMetaDefs::RuntimeMenuType_Application;
+#endif /* RT_OS_DARWIN */
+    keys << "Machine";     values << UIExtraDataMetaDefs::RuntimeMenuType_Machine;
+    keys << "View";        values << UIExtraDataMetaDefs::RuntimeMenuType_View;
+    keys << "Devices";     values << UIExtraDataMetaDefs::RuntimeMenuType_Devices;
 #ifdef VBOX_WITH_DEBUGGER_GUI
-    keys << "Debug";   values << UIExtraDataMetaDefs::RuntimeMenuType_Debug;
+    keys << "Debug";       values << UIExtraDataMetaDefs::RuntimeMenuType_Debug;
 #endif /* VBOX_WITH_DEBUGGER_GUI */
-    keys << "Help";    values << UIExtraDataMetaDefs::RuntimeMenuType_Help;
-    keys << "All";     values << UIExtraDataMetaDefs::RuntimeMenuType_All;
+    keys << "Help";        values << UIExtraDataMetaDefs::RuntimeMenuType_Help;
+    keys << "All";         values << UIExtraDataMetaDefs::RuntimeMenuType_All;
     /* Invalid type for unknown words: */
     if (!keys.contains(strRuntimeMenuType, Qt::CaseInsensitive))
Index: /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 52556)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h	(revision 52557)
@@ -315,13 +315,16 @@
     enum RuntimeMenuType
     {
-        RuntimeMenuType_Invalid = 0,
-        RuntimeMenuType_Machine = RT_BIT(0),
-        RuntimeMenuType_View    = RT_BIT(1),
-        RuntimeMenuType_Devices = RT_BIT(2),
+        RuntimeMenuType_Invalid     = 0,
+#ifdef RT_OS_DARWIN
+        RuntimeMenuType_Application = RT_BIT(0),
+#endif /* RT_OS_DARWIN */
+        RuntimeMenuType_Machine     = RT_BIT(1),
+        RuntimeMenuType_View        = RT_BIT(2),
+        RuntimeMenuType_Devices     = RT_BIT(3),
 #ifdef VBOX_WITH_DEBUGGER_GUI
-        RuntimeMenuType_Debug   = RT_BIT(3),
+        RuntimeMenuType_Debug       = RT_BIT(4),
 #endif /* VBOX_WITH_DEBUGGER_GUI */
-        RuntimeMenuType_Help    = RT_BIT(4),
-        RuntimeMenuType_All     = 0xFF
+        RuntimeMenuType_Help        = RT_BIT(5),
+        RuntimeMenuType_All         = 0xFF
     };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp	(revision 52556)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMenuBarEditorWindow.cpp	(revision 52557)
@@ -69,4 +69,5 @@
     /** Prepare routine. */
     void prepare();
+
 #ifdef Q_WS_MAC
     /** Prepare named menu routine. */
@@ -81,4 +82,5 @@
     /** Prepare copied action routine. */
     QAction* prepareCopiedAction(QMenu *pMenu, const UIAction *pAction);
+
     /** Prepare menus routine. */
     void prepareMenus();
@@ -102,4 +104,8 @@
     /** Updates menus routine. */
     void updateMenus();
+#ifdef Q_WS_MAC
+    /** Mac OS X: Updates 'Application' menu routine. */
+    void updateMenuApplication();
+#endif /* Q_WS_MAC */
     /** Updates 'Machine' menu routine. */
     void updateMenuMachine();
@@ -179,4 +185,19 @@
             break;
         }
+#ifdef Q_WS_MAC
+        case UIExtraDataMetaDefs::RuntimeMenuType_Application:
+        {
+            /* Get sender type: */
+            const UIExtraDataMetaDefs::MenuApplicationActionType type =
+                static_cast<UIExtraDataMetaDefs::MenuApplicationActionType>(pAction->property("type").toInt());
+            /* Load current menu-bar restrictions: */
+            UIExtraDataMetaDefs::MenuApplicationActionType restrictions = gEDataManager->restrictedRuntimeMenuApplicationActionTypes(vboxGlobal().managedVMUuid());
+            /* Invert restriction for sender type: */
+            restrictions = (UIExtraDataMetaDefs::MenuApplicationActionType)(restrictions ^ type);
+            /* Save updated menu-bar restrictions: */
+            gEDataManager->setRestrictedRuntimeMenuApplicationActionTypes(restrictions, vboxGlobal().managedVMUuid());
+            break;
+        }
+#endif /* Q_WS_MAC */
         case UIExtraDataMetaDefs::RuntimeMenuType_Machine:
         {
@@ -329,5 +350,5 @@
     {
         /* Configure named menu: */
-        pNamedMenu->setProperty("class", UIExtraDataMetaDefs::RuntimeMenuType_Help);
+        pNamedMenu->setProperty("class", UIExtraDataMetaDefs::RuntimeMenuType_Application);
         /* Get named menu action: */
         QAction *pNamedMenuAction = pNamedMenu->menuAction();
@@ -596,4 +617,7 @@
 
     /* Update known menu-bar menus: */
+#ifdef Q_WS_MAC
+    updateMenuApplication();
+#endif /* Q_WS_MAC */
     updateMenuMachine();
     updateMenuView();
@@ -604,4 +628,35 @@
     updateMenuHelp();
 }
+
+#ifdef Q_WS_MAC
+void UIMenuBarEditorWidget::updateMenuApplication()
+{
+    /* Recache menu-bar configuration: */
+    const UIExtraDataMetaDefs::MenuApplicationActionType restrictionsMenuApplication = gEDataManager->restrictedRuntimeMenuApplicationActionTypes(vboxGlobal().managedVMUuid());
+    /* Get static meta-object: */
+    const QMetaObject &smo = UIExtraDataMetaDefs::staticMetaObject;
+
+    /* We have UIExtraDataMetaDefs::MenuApplicationActionType enum registered, so we can enumerate it: */
+    const int iEnumIndex = smo.indexOfEnumerator("MenuApplicationActionType");
+    QMetaEnum metaEnum = smo.enumerator(iEnumIndex);
+    /* Handle other enum-values: */
+    for (int iKeyIndex = 0; iKeyIndex < metaEnum.keyCount(); ++iKeyIndex)
+    {
+        /* Get iterated enum-value: */
+        const UIExtraDataMetaDefs::MenuApplicationActionType enumValue =
+            static_cast<const UIExtraDataMetaDefs::MenuApplicationActionType>(metaEnum.keyToValue(metaEnum.key(iKeyIndex)));
+        /* Skip MenuApplicationActionType_Invalid & MenuApplicationActionType_All enum-value: */
+        if (enumValue == UIExtraDataMetaDefs::MenuApplicationActionType_Invalid ||
+            enumValue == UIExtraDataMetaDefs::MenuApplicationActionType_All)
+            continue;
+        /* Which key required action registered under? */
+        const QString strKey = gpConverter->toInternalString(enumValue);
+        if (!m_actions.contains(strKey))
+            continue;
+        /* Update action 'checked' state: */
+        m_actions.value(strKey)->setChecked(!(restrictionsMenuApplication & enumValue));
+    }
+}
+#endif /* Q_WS_MAC */
 
 void UIMenuBarEditorWidget::updateMenuMachine()
