Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.h	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDefs.h	(revision 37051)
@@ -83,7 +83,4 @@
     void cacheCurrentData(const CacheData &currentData) { m_value.second = currentData; }
 
-    /* Reset the current data to be empty: */
-    void reset() { m_value.second = CacheData(); }
-
     /* Reset the initial and the current data to be both empty: */
     void clear() { m_value.first = CacheData(); m_value.second = CacheData(); }
@@ -141,20 +138,10 @@
     }
 
-    /* Reset the current data to be empty.
-     * Perform the same for all the children: */
-    void reset()
-    {
-        UISettingsCache<ParentCacheData>::reset();
-        for (int iChildIndex = 0; iChildIndex < childCount(); ++iChildIndex)
-            child(iChildIndex).reset();
-    }
-
     /* Reset the initial and the current data to be both empty.
-     * Perform the same for all the children: */
+     * Removes all the children: */
     void clear()
     {
         UISettingsCache<ParentCacheData>::clear();
-        for (int iChildIndex = 0; iChildIndex < childCount(); ++iChildIndex)
-            child(iChildIndex).clear();
+        m_children.clear();
     }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.h	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsPage.h	(revision 37051)
@@ -100,5 +100,5 @@
     /* Settings dialog type stuff: */
     SettingsDialogType dialogType() const { return m_dialogType; }
-    virtual void setDialogType(SettingsDialogType settingsDialogType) { m_dialogType = settingsDialogType; }
+    virtual void setDialogType(SettingsDialogType settingsDialogType) { m_dialogType = settingsDialogType; polishPage(); }
     bool isMachineOffline() const { return dialogType() == SettingsDialogType_Offline; }
     bool isMachineSaved() const { return dialogType() == SettingsDialogType_Saved; }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp	(revision 37051)
@@ -35,4 +35,7 @@
     /* Fetch data to machine: */
     UISettingsPageMachine::fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
 
     /* Prepare audio data: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 37051)
@@ -153,4 +153,7 @@
     UISettingsPageMachine::fetchData(data);
 
+    /* Clear cache initially: */
+    m_cache.clear();
+
     /* Prepare display data: */
     UIDataSettingsMachineDisplay displayData;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 37051)
@@ -74,4 +74,7 @@
     /* Fetch data to machine: */
     UISettingsPageMachine::fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
 
     /* Prepare general data: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 37051)
@@ -748,4 +748,7 @@
     /* Fetch data to machine: */
     UISettingsPageMachine::fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
 
     /* Cache names lists: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsParallel.cpp	(revision 37051)
@@ -202,4 +202,7 @@
     /* Fetch data to machine: */
     UISettingsPageMachine::fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
 
     /* For each parallel port: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp	(revision 37051)
@@ -223,4 +223,7 @@
     UISettingsPageMachine::fetchData(data);
 
+    /* Clear cache initially: */
+    m_cache.clear();
+
     /* Load machine (permanent) shared folders into shared folders cache if possible: */
     if (isSharedFolderTypeSupported(MachineType))
@@ -269,4 +272,7 @@
 void UIMachineSettingsSF::getFromCache()
 {
+    /* Clear list initially: */
+    mTwFolders->clear();
+
     /* Update root items visibility: */
     updateRootItemsVisibility();
@@ -686,4 +692,10 @@
 }
 
+void UIMachineSettingsSF::polishPage()
+{
+    /* Update root items visibility: */
+    updateRootItemsVisibility();
+}
+
 CSharedFolderVector UIMachineSettingsSF::getSharedFolders(UISharedFolderType sharedFoldersType)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.h	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.h	(revision 37051)
@@ -130,4 +130,6 @@
     void setRootItemVisible(UISharedFolderType sharedFolderType, bool fVisible);
 
+    void polishPage();
+
     CSharedFolderVector getSharedFolders(UISharedFolderType sharedFoldersType);
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp	(revision 37051)
@@ -236,4 +236,7 @@
     /* Fetch data to machine: */
     UISettingsPageMachine::fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
 
     /* For each serial port: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 37051)
@@ -1423,4 +1423,14 @@
 {
     m_dialogType = dialogType;
+}
+
+void StorageModel::clear()
+{
+    while (mRootItem->childCount())
+    {
+        beginRemoveRows(root(), 0, 0);
+        delete mRootItem->childByPos(0);
+        endRemoveRows();
+    }
 }
 
@@ -1784,4 +1794,7 @@
     UISettingsPageMachine::fetchData(data);
 
+    /* Clear cache initially: */
+    m_cache.clear();
+
     /* Prepare storage data: */
     UIDataSettingsMachineStorage storageData;
@@ -1849,4 +1862,7 @@
 void UIMachineSettingsStorage::getFromCache()
 {
+    /* Clear model initially: */
+    mStorageModel->clear();
+
     /* Get storage data from cache: */
     const UIDataSettingsMachineStorage &storageData = m_cache.base();
@@ -3424,6 +3440,10 @@
 void UIMachineSettingsStorage::setDialogType(SettingsDialogType settingsDialogType)
 {
+    /* Update 'settings dialog type' of base class: */
     UISettingsPageMachine::setDialogType(settingsDialogType);
+    /* Update model 'settings dialog type': */
     mStorageModel->setDialogType(dialogType());
+    /* Update action states: */
+    updateActionsState();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.h	(revision 37051)
@@ -503,5 +503,7 @@
     void setChipsetType(KChipsetType type);
 
-    void setDialogType(SettingsDialogType dialogType);
+    void setDialogType(SettingsDialogType settingsDialogType);
+
+    void clear();
 
     QMap<KStorageBus, int> currentControllerTypes() const;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 37051)
@@ -169,4 +169,7 @@
     /* Fetch data to machine: */
     UISettingsPageMachine::fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
 
     /* Prepare system data: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	(revision 37050)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	(revision 37051)
@@ -152,4 +152,7 @@
     /* Fetch data to properties & settings or machine: */
     fetchData(data);
+
+    /* Clear cache initially: */
+    m_cache.clear();
 
     /* Depending on page type: */
@@ -257,4 +260,8 @@
 void UIMachineSettingsUSB::getFromCache()
 {
+    /* Clear list initially: */
+    mTwFilters->clear();
+    m_filters.clear();
+
     /* Depending on page type: */
     switch (pageType())
