Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp	(revision 43564)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemGroup.cpp	(revision 43565)
@@ -1080,5 +1080,5 @@
 
                 /* Update model: */
-                pModel->updateGroupTree();
+                pModel->cleanupGroupTree();
                 pModel->updateNavigation();
                 pModel->updateLayout();
@@ -1133,5 +1133,5 @@
 
                 /* Update model: */
-                pModel->updateGroupTree();
+                pModel->cleanupGroupTree();
                 pModel->updateNavigation();
                 pModel->updateLayout();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp	(revision 43564)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserItemMachine.cpp	(revision 43565)
@@ -527,5 +527,5 @@
 
                 /* Update model: */
-                pModel->updateGroupTree();
+                pModel->cleanupGroupTree();
                 pModel->updateNavigation();
                 pModel->updateLayout();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 43564)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 43565)
@@ -111,12 +111,31 @@
 void UIGChooserModel::prepare()
 {
-    /* Prepare group-tree: */
-    prepareGroupTree();
+    /* Load group tree: */
+    loadGroupTree();
+
+    /* Update navigation: */
+    updateNavigation();
+
+    /* Update layout: */
+    updateLayout();
+
+    /* Load last selected item: */
+    loadLastSelectedItem();
 }
 
 void UIGChooserModel::cleanup()
 {
-    /* Cleanup group-tree: */
-    cleanupGroupTree();
+    /* Save last selected item: */
+    saveLastSelectedItem();
+
+    /* Currently we are not saving group descriptors
+     * (which reflecting group toggle-state) on-the-fly
+     * So, for now we are additionally save group orders
+     * when exiting application: */
+    saveGroupOrders();
+
+    /* Make sure all saving steps complete: */
+    makeSureGroupDefinitionsSaveIsFinished();
+    makeSureGroupOrdersSaveIsFinished();
 }
 
@@ -508,7 +527,7 @@
 }
 
-void UIGChooserModel::updateGroupTree()
-{
-    updateGroupTree(mainRoot());
+void UIGChooserModel::cleanupGroupTree()
+{
+    cleanupGroupTree(mainRoot());
 }
 
@@ -597,5 +616,5 @@
         removeMachineItems(strId, mainRoot());
         /* Update model: */
-        updateGroupTree();
+        cleanupGroupTree();
         updateNavigation();
         updateLayout();
@@ -660,5 +679,5 @@
 
     /* Update model: */
-    updateGroupTree();
+    cleanupGroupTree();
     updateNavigation();
     updateLayout();
@@ -717,5 +736,5 @@
     }
     /* Update model: */
-    updateGroupTree();
+    cleanupGroupTree();
     updateNavigation();
     updateLayout();
@@ -847,5 +866,5 @@
 
     /* And update model: */
-    updateGroupTree();
+    cleanupGroupTree();
     updateNavigation();
     updateLayout();
@@ -1190,13 +1209,6 @@
 }
 
-void UIGChooserModel::prepareGroupTree()
-{
-    /* Load group tree: */
-    loadGroupTree();
-
-    /* Update model: */
-    updateNavigation();
-    updateLayout();
-
+void UIGChooserModel::loadLastSelectedItem()
+{
     /* Load last selected item (choose first if unable to load): */
     setCurrentItem(vboxGlobal().virtualBox().GetExtraData(GUI_LastItemSelected));
@@ -1205,19 +1217,9 @@
 }
 
-void UIGChooserModel::cleanupGroupTree()
+void UIGChooserModel::saveLastSelectedItem()
 {
     /* Save last selected item: */
     vboxGlobal().virtualBox().SetExtraData(GUI_LastItemSelected,
                                            currentItem() ? currentItem()->definition() : QString());
-
-    /* Currently we are not saving group descriptors
-     * (which reflecting group toggle-state) on-the-fly
-     * So, for now we are additionally save group orders
-     * when exiting application: */
-    saveGroupOrders();
-
-    /* Make sure all saving steps complete: */
-    makeSureGroupDefinitionsSaveIsFinished();
-    makeSureGroupOrdersSaveIsFinished();
 }
 
@@ -1430,9 +1432,9 @@
 }
 
-void UIGChooserModel::updateGroupTree(UIGChooserItem *pGroupItem)
+void UIGChooserModel::cleanupGroupTree(UIGChooserItem *pGroupItem)
 {
     /* Cleanup all the group items first: */
     foreach (UIGChooserItem *pSubGroupItem, pGroupItem->items(UIGChooserItemType_Group))
-        updateGroupTree(pSubGroupItem);
+        cleanupGroupTree(pSubGroupItem);
     if (!pGroupItem->hasItems())
     {
@@ -1574,5 +1576,5 @@
 
     /* And update model: */
-    updateGroupTree();
+    cleanupGroupTree();
     updateNavigation();
     updateLayout();
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 43564)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 43565)
@@ -138,5 +138,5 @@
     QString uniqueGroupName(UIGChooserItem *pRoot);
     void startEditingGroupItemName();
-    void updateGroupTree();
+    void cleanupGroupTree();
 
     /* API: Machine-item stuff: */
@@ -222,8 +222,8 @@
     void prepareConnections();
     void prepareReleaseLogging();
-    void prepareGroupTree();
+    void loadLastSelectedItem();
 
     /* Helpers: Cleanup stuff: */
-    void cleanupGroupTree();
+    void saveLastSelectedItem();
     void cleanupHandlers();
     void cleanupContextMenu();
@@ -251,5 +251,5 @@
     /* Helper: Group-item stuff: */
     UIGChooserItem* findGroupItem(const QString &strName, UIGChooserItem *pParent);
-    void updateGroupTree(UIGChooserItem *pGroupItem);
+    void cleanupGroupTree(UIGChooserItem *pGroupItem);
 
     /* Helpers: Machine-item stuff: */
