Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51514)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp	(revision 51515)
@@ -403,4 +403,28 @@
 }
 
+bool UIExtraDataManager::selectorWindowToolBarVisible() const
+{
+    /* Show unless feature restricted: */
+    return !isFeatureRestricted(GUI_Toolbar);
+}
+
+void UIExtraDataManager::setSelectorWindowToolBarVisible(bool fVisible)
+{
+    /* Remember if feature restricted: */
+    setExtraDataString(GUI_Toolbar, toFeatureRestricted(!fVisible));
+}
+
+bool UIExtraDataManager::selectorWindowStatusBarVisible() const
+{
+    /* Show unless feature restricted: */
+    return !isFeatureRestricted(GUI_Statusbar);
+}
+
+void UIExtraDataManager::setSelectorWindowStatusBarVisible(bool fVisible)
+{
+    /* Remember if feature restricted: */
+    setExtraDataString(GUI_Statusbar, toFeatureRestricted(!fVisible));
+}
+
 bool UIExtraDataManager::isFirstRun(const QString &strId) const
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 51514)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h	(revision 51515)
@@ -142,4 +142,13 @@
     /** Defines selector-window splitter @a hints. */
     void setSelectorWindowSplitterHints(const QList<int> &hints);
+
+    /** Returns whether selector-window tool-bar visible. */
+    bool selectorWindowToolBarVisible() const;
+    /** Defines whether selector-window tool-bar @a fVisible. */
+    void setSelectorWindowToolBarVisible(bool fVisible);
+    /** Returns whether selector-window status-bar visible. */
+    bool selectorWindowStatusBarVisible() const;
+    /** Defines whether selector-window status-bar @a fVisible. */
+    void setSelectorWindowStatusBarVisible(bool fVisible);
 
     /** Returns whether this machine started for the first time. */
Index: trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 51514)
+++ trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 51515)
@@ -222,20 +222,17 @@
 void UISelectorWindow::sltShowSelectorContextMenu(const QPoint &pos)
 {
-    /* Load toolbar/statusbar availability settings: */
-    CVirtualBox vbox = vboxGlobal().virtualBox();
-    QString strToolbar = vbox.GetExtraData(GUI_Toolbar);
-    QString strStatusbar = vbox.GetExtraData(GUI_Statusbar);
-    bool fToolbar = strToolbar.isEmpty() || strToolbar == "true";
-    bool fStatusbar = strStatusbar.isEmpty() || strStatusbar == "true";
-
     /* Populate toolbar/statusbar acctions: */
     QList<QAction*> actions;
     QAction *pShowToolBar = new QAction(tr("Show Toolbar"), 0);
     pShowToolBar->setCheckable(true);
-    pShowToolBar->setChecked(fToolbar);
+#ifdef Q_WS_MAC
+    pShowToolBar->setChecked(mVMToolBar->isVisible());
+#else /* Q_WS_MAC */
+    pShowToolBar->setChecked(m_pBar->isVisible());
+#endif /* !Q_WS_MAC */
     actions << pShowToolBar;
     QAction *pShowStatusBar = new QAction(tr("Show Statusbar"), 0);
     pShowStatusBar->setCheckable(true);
-    pShowStatusBar->setChecked(fStatusbar);
+    pShowStatusBar->setChecked(statusBar()->isVisible());
     actions << pShowStatusBar;
 
@@ -254,5 +251,4 @@
             m_pBar->show();
 #endif /* !Q_WS_MAC */
-            vbox.SetExtraData(GUI_Toolbar, "true");
         }
         else
@@ -263,5 +259,4 @@
             m_pBar->hide();
 #endif /* !Q_WS_MAC */
-            vbox.SetExtraData(GUI_Toolbar, "false");
         }
     }
@@ -269,13 +264,7 @@
     {
         if (pResult->isChecked())
-        {
             statusBar()->show();
-            vbox.SetExtraData(GUI_Statusbar, "true");
-        }
         else
-        {
             statusBar()->hide();
-            vbox.SetExtraData(GUI_Statusbar, "false");
-        }
     }
 }
@@ -1025,12 +1014,4 @@
             break;
         }
-        case QEvent::ToolBarChange:
-        {
-            CVirtualBox vbox = vboxGlobal().virtualBox();
-            /* We have to invert the isVisible check one time, cause this event
-             * is sent *before* the real toggle is done. Really intuitive Trolls. */
-            vbox.SetExtraData(GUI_Toolbar, !::darwinIsToolbarVisible(mVMToolBar) ? "true" : "false");
-            break;
-        }
 #endif /* Q_WS_MAC */
         default:
@@ -1548,13 +1529,10 @@
     /* Restore toolbar and statusbar visibility: */
     {
-        QString strToolbar = vbox.GetExtraData(GUI_Toolbar);
-        QString strStatusbar = vbox.GetExtraData(GUI_Statusbar);
-
-#ifdef Q_WS_MAC
-        mVMToolBar->setVisible(strToolbar.isEmpty() || strToolbar == "true");
+#ifdef Q_WS_MAC
+        mVMToolBar->setHidden(!gEDataManager->selectorWindowToolBarVisible());
 #else /* Q_WS_MAC */
-        m_pBar->setVisible(strToolbar.isEmpty() || strToolbar == "true");
+        m_pBar->setHidden(!gEDataManager->selectorWindowToolBarVisible());
 #endif /* !Q_WS_MAC */
-        statusBar()->setVisible(strStatusbar.isEmpty() || strStatusbar == "true");
+        statusBar()->setHidden(!gEDataManager->selectorWindowStatusBarVisible());
     }
 }
@@ -1562,6 +1540,13 @@
 void UISelectorWindow::saveSettings()
 {
-    /* Get VBox object: */
-    CVirtualBox vbox = vboxGlobal().virtualBox();
+    /* Save toolbar and statusbar visibility: */
+    {
+#ifdef Q_WS_MAC
+        gEDataManager->setSelectorWindowToolBarVisible(!mVMToolBar->isHidden());
+#else /* Q_WS_MAC */
+        gEDataManager->setSelectorWindowToolBarVisible(!m_pBar->isHidden());
+#endif /* !Q_WS_MAC */
+        gEDataManager->setSelectorWindowStatusBarVisible(!statusBar()->isHidden());
+    }
 
     /* Save splitter handle position: */
