Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 66600)
@@ -1067,4 +1067,46 @@
           tr("Failed to set global VirtualBox properties."),
           formatErrorInfo(properties));
+}
+
+void UIMessageCenter::cannotSaveDisplaySettings(const CSystemProperties &comProperties, QWidget *pParent /* = 0 */)
+{
+    error(pParent, MessageType_Error,
+          tr("Cannot save display settings."),
+          formatErrorInfo(comProperties));
+}
+
+void UIMessageCenter::cannotSaveGeneralSettings(const CSystemProperties &comProperties, QWidget *pParent /* = 0 */)
+{
+    error(pParent, MessageType_Error,
+          tr("Cannot save general settings."),
+          formatErrorInfo(comProperties));
+}
+
+void UIMessageCenter::cannotSaveInputSettings(const CSystemProperties &comProperties, QWidget *pParent /* = 0 */)
+{
+    error(pParent, MessageType_Error,
+          tr("Cannot save input settings."),
+          formatErrorInfo(comProperties));
+}
+
+void UIMessageCenter::cannotSaveLanguageSettings(const CSystemProperties &comProperties, QWidget *pParent /* = 0 */)
+{
+    error(pParent, MessageType_Error,
+          tr("Cannot save language settings."),
+          formatErrorInfo(comProperties));
+}
+
+void UIMessageCenter::cannotSaveProxySettings(const CSystemProperties &comProperties, QWidget *pParent /* = 0 */)
+{
+    error(pParent, MessageType_Error,
+          tr("Cannot save proxy settings."),
+          formatErrorInfo(comProperties));
+}
+
+void UIMessageCenter::cannotSaveUpdateSettings(const CSystemProperties &comProperties, QWidget *pParent /* = 0 */)
+{
+    error(pParent, MessageType_Error,
+          tr("Cannot save update settings."),
+          formatErrorInfo(comProperties));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 66600)
@@ -229,4 +229,10 @@
     void cannotRemoveHostInterface(const CProgress &progress, const QString &strInterfaceName, QWidget *pParent = 0);
     void cannotSetSystemProperties(const CSystemProperties &properties, QWidget *pParent = 0) const;
+    void cannotSaveDisplaySettings(const CSystemProperties &comProperties, QWidget *pParent = 0);
+    void cannotSaveGeneralSettings(const CSystemProperties &comProperties, QWidget *pParent = 0);
+    void cannotSaveInputSettings(const CSystemProperties &comProperties, QWidget *pParent = 0);
+    void cannotSaveLanguageSettings(const CSystemProperties &comProperties, QWidget *pParent = 0);
+    void cannotSaveProxySettings(const CSystemProperties &comProperties, QWidget *pParent = 0);
+    void cannotSaveUpdateSettings(const CSystemProperties &comProperties, QWidget *pParent = 0);
 
     /* API: Machine settings warnings: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsDisplay.cpp	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsDisplay.cpp	(revision 66600)
@@ -23,4 +23,5 @@
 # include "UIExtraDataManager.h"
 # include "UIGlobalSettingsDisplay.h"
+# include "UIMessageCenter.h"
 
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
@@ -133,14 +134,6 @@
     UISettingsPageGlobal::fetchData(data);
 
-    /* Make sure display data was changed: */
-    if (m_pCache->wasChanged())
-    {
-        /* Save new display data from the cache: */
-        if (   m_pCache->data().m_enmMaxGuestResolution != m_pCache->base().m_enmMaxGuestResolution
-            || m_pCache->data().m_maxGuestResolution != m_pCache->base().m_maxGuestResolution)
-            gEDataManager->setMaxGuestScreenResolution(m_pCache->data().m_enmMaxGuestResolution, m_pCache->data().m_maxGuestResolution);
-        if (m_pCache->data().m_fActivateHoveredMachineWindow != m_pCache->base().m_fActivateHoveredMachineWindow)
-            gEDataManager->setActivateHoveredMachineWindow(m_pCache->data().m_fActivateHoveredMachineWindow);
-    }
+    /* Update display data and failing state: */
+    setFailed(!saveDisplayData());
 
     /* Upload properties to data: */
@@ -245,2 +238,33 @@
 }
 
+bool UIGlobalSettingsDisplay::saveDisplayData()
+{
+    /* Prepare result: */
+    bool fSuccess = true;
+    /* Save display settings from the cache: */
+    if (fSuccess && m_pCache->wasChanged())
+    {
+        /* Get old display data from the cache: */
+        const UIDataSettingsGlobalDisplay &oldDisplayData = m_pCache->base();
+        /* Get new display data from the cache: */
+        const UIDataSettingsGlobalDisplay &newDisplayData = m_pCache->data();
+
+        // Here could go changes for m_properties.
+
+        /* Show error message if necessary: */
+        if (!fSuccess)
+            msgCenter().cannotSaveDisplaySettings(m_properties, this);
+
+        /* Save maximum guest resolution policy and/or value: */
+        if (   fSuccess
+            && (   newDisplayData.m_enmMaxGuestResolution != oldDisplayData.m_enmMaxGuestResolution
+                || newDisplayData.m_maxGuestResolution != oldDisplayData.m_maxGuestResolution))
+            gEDataManager->setMaxGuestScreenResolution(newDisplayData.m_enmMaxGuestResolution, newDisplayData.m_maxGuestResolution);
+        /* Save whether hovered machine-window should be activated automatically: */
+        if (fSuccess && newDisplayData.m_fActivateHoveredMachineWindow != oldDisplayData.m_fActivateHoveredMachineWindow)
+            gEDataManager->setActivateHoveredMachineWindow(newDisplayData.m_fActivateHoveredMachineWindow);
+    }
+    /* Return result: */
+    return fSuccess;
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsDisplay.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsDisplay.h	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsDisplay.h	(revision 66600)
@@ -75,4 +75,7 @@
     void reloadMaximumGuestScreenSizePolicyComboBox();
 
+    /** Saves existing display data from the cache. */
+    bool saveDisplayData();
+
     /** Holds the page data cache instance. */
     UISettingsCacheGlobalDisplay *m_pCache;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp	(revision 66600)
@@ -26,4 +26,5 @@
 # include "UIGlobalSettingsGeneral.h"
 # include "UIExtraDataManager.h"
+# include "UIMessageCenter.h"
 # include "VBoxGlobal.h"
 
@@ -131,17 +132,6 @@
     UISettingsPageGlobal::fetchData(data);
 
-    /* Make sure general data was changed: */
-    if (m_pCache->wasChanged())
-    {
-        /* Save new general data from the cache: */
-        if (   m_properties.isOk()
-            && m_pCache->data().m_strDefaultMachineFolder != m_pCache->base().m_strDefaultMachineFolder)
-            m_properties.SetDefaultMachineFolder(m_pCache->data().m_strDefaultMachineFolder);
-        if (   m_properties.isOk()
-            && m_pCache->data().m_strVRDEAuthLibrary != m_pCache->base().m_strVRDEAuthLibrary)
-            m_properties.SetVRDEAuthLibrary(m_pCache->data().m_strVRDEAuthLibrary);
-        if (m_pCache->data().m_fHostScreenSaverDisabled != m_pCache->base().m_fHostScreenSaverDisabled)
-            gEDataManager->setHostScreenSaverDisabled(m_pCache->data().m_fHostScreenSaverDisabled);
-    }
+    /* Update general data and failing state: */
+    setFailed(!saveGeneralData());
 
     /* Upload properties to data: */
@@ -192,2 +182,41 @@
 }
 
+bool UIGlobalSettingsGeneral::saveGeneralData()
+{
+    /* Prepare result: */
+    bool fSuccess = true;
+    /* Save general settings from the cache: */
+    if (fSuccess && m_pCache->wasChanged())
+    {
+        /* Get old general data from the cache: */
+        const UIDataSettingsGlobalGeneral &oldGeneralData = m_pCache->base();
+        /* Get new general data from the cache: */
+        const UIDataSettingsGlobalGeneral &newGeneralData = m_pCache->data();
+
+        /* Save default machine folder: */
+        if (   fSuccess
+            && newGeneralData.m_strDefaultMachineFolder != oldGeneralData.m_strDefaultMachineFolder)
+        {
+            m_properties.SetDefaultMachineFolder(newGeneralData.m_strDefaultMachineFolder);
+            fSuccess = m_properties.isOk();
+        }
+        /* Save VRDE auth library: */
+        if (   fSuccess
+            && newGeneralData.m_strVRDEAuthLibrary != oldGeneralData.m_strVRDEAuthLibrary)
+        {
+            m_properties.SetVRDEAuthLibrary(newGeneralData.m_strVRDEAuthLibrary);
+            fSuccess = m_properties.isOk();
+        }
+
+        /* Show error message if necessary: */
+        if (!fSuccess)
+            msgCenter().cannotSaveGeneralSettings(m_properties, this);
+
+        /* Save new general data from the cache: */
+        if (newGeneralData.m_fHostScreenSaverDisabled != oldGeneralData.m_fHostScreenSaverDisabled)
+            gEDataManager->setHostScreenSaverDisabled(newGeneralData.m_fHostScreenSaverDisabled);
+    }
+    /* Return result: */
+    return fSuccess;
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.h	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.h	(revision 66600)
@@ -67,4 +67,7 @@
     void cleanup();
 
+    /** Saves existing general data from the cache. */
+    bool saveGeneralData();
+
     /** Holds the page data cache instance. */
     UISettingsCacheGlobalGeneral *m_pCache;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.cpp	(revision 66600)
@@ -36,4 +36,5 @@
 # include "UIShortcutPool.h"
 # include "UIExtraDataManager.h"
+# include "UIMessageCenter.h"
 
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
@@ -947,30 +948,6 @@
     UISettingsPageGlobal::fetchData(data);
 
-    /* Make sure input data was changed: */
-    if (m_pCache->wasChanged())
-    {
-        /* Save new host-combo shortcut from the cache: */
-        const UIDataShortcutRow fakeHostComboItem(0, UIHostCombo::hostComboCacheKey(), QString(), QString(), QString());
-        const int iHostComboItemBase = UIFunctorFindShortcut(UIFunctorFindShortcut::Base)(m_pCache->base().shortcuts(), fakeHostComboItem);
-        const int iHostComboItemData = UIFunctorFindShortcut(UIFunctorFindShortcut::Base)(m_pCache->data().shortcuts(), fakeHostComboItem);
-        const QString strHostComboBase = iHostComboItemBase != -1 ? m_pCache->base().shortcuts().at(iHostComboItemBase).currentSequence() : QString();
-        const QString strHostComboData = iHostComboItemData != -1 ? m_pCache->data().shortcuts().at(iHostComboItemData).currentSequence() : QString();
-        if (strHostComboData != strHostComboBase)
-            gEDataManager->setHostKeyCombination(strHostComboData);
-
-        /* Save other new shortcuts from the cache: */
-        QMap<QString, QString> sequencesBase;
-        QMap<QString, QString> sequencesData;
-        foreach (const UIDataShortcutRow &item, m_pCache->base().shortcuts())
-            sequencesBase.insert(item.key(), item.currentSequence());
-        foreach (const UIDataShortcutRow &item, m_pCache->data().shortcuts())
-            sequencesData.insert(item.key(), item.currentSequence());
-        if (sequencesData != sequencesBase)
-            gShortcutPool->setOverrides(sequencesData);
-
-        /* Save other new things from the cache: */
-        if (m_pCache->data().autoCapture() != m_pCache->base().autoCapture())
-            gEDataManager->setAutoCaptureEnabled(m_pCache->data().autoCapture());
-    }
+    /* Update input data and failing state: */
+    setFailed(!saveInputData());
 
     /* Upload properties to data: */
@@ -1170,4 +1147,49 @@
 }
 
+bool UIGlobalSettingsInput::saveInputData()
+{
+    /* Prepare result: */
+    bool fSuccess = true;
+    /* Save input settings from the cache: */
+    if (fSuccess && m_pCache->wasChanged())
+    {
+        /* Get old input data from the cache: */
+        const UIDataSettingsGlobalInput &oldInputData = m_pCache->base();
+        /* Get new input data from the cache: */
+        const UIDataSettingsGlobalInput &newInputData = m_pCache->data();
+
+        // Here could go changes for m_properties.
+
+        /* Show error message if necessary: */
+        if (!fSuccess)
+            msgCenter().cannotSaveInputSettings(m_properties, this);
+
+        /* Save new host-combo shortcut from the cache: */
+        const UIDataShortcutRow fakeHostComboItem(0, UIHostCombo::hostComboCacheKey(), QString(), QString(), QString());
+        const int iHostComboItemBase = UIFunctorFindShortcut(UIFunctorFindShortcut::Base)(oldInputData.shortcuts(), fakeHostComboItem);
+        const int iHostComboItemData = UIFunctorFindShortcut(UIFunctorFindShortcut::Base)(newInputData.shortcuts(), fakeHostComboItem);
+        const QString strHostComboBase = iHostComboItemBase != -1 ? oldInputData.shortcuts().at(iHostComboItemBase).currentSequence() : QString();
+        const QString strHostComboData = iHostComboItemData != -1 ? newInputData.shortcuts().at(iHostComboItemData).currentSequence() : QString();
+        if (strHostComboData != strHostComboBase)
+            gEDataManager->setHostKeyCombination(strHostComboData);
+
+        /* Save other new shortcuts from the cache: */
+        QMap<QString, QString> sequencesBase;
+        QMap<QString, QString> sequencesData;
+        foreach (const UIDataShortcutRow &item, oldInputData.shortcuts())
+            sequencesBase.insert(item.key(), item.currentSequence());
+        foreach (const UIDataShortcutRow &item, newInputData.shortcuts())
+            sequencesData.insert(item.key(), item.currentSequence());
+        if (sequencesData != sequencesBase)
+            gShortcutPool->setOverrides(sequencesData);
+
+        /* Save other new things from the cache: */
+        if (newInputData.autoCapture() != oldInputData.autoCapture())
+            gEDataManager->setAutoCaptureEnabled(newInputData.autoCapture());
+    }
+    /* Return result: */
+    return fSuccess;
+}
+
 # include "UIGlobalSettingsInput.moc"
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.h	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsInput.h	(revision 66600)
@@ -86,4 +86,7 @@
     void cleanup();
 
+    /** Saves existing input data from the cache. */
+    bool saveInputData();
+
     /** Holds the tab-widget instance. */
     QTabWidget         *m_pTabWidget;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.cpp	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.cpp	(revision 66600)
@@ -29,4 +29,5 @@
 # include "UIGlobalSettingsLanguage.h"
 # include "UIExtraDataManager.h"
+# include "UIMessageCenter.h"
 # include "VBoxGlobal.h"
 
@@ -269,11 +270,6 @@
     UISettingsPageGlobal::fetchData(data);
 
-    /* Make sure language data was changed: */
-    if (m_pCache->wasChanged())
-    {
-        /* Save new language data from the cache: */
-        if (m_pCache->data().m_strLanguageId != m_pCache->base().m_strLanguageId)
-            gEDataManager->setLanguageId(m_pCache->data().m_strLanguageId);
-    }
+    /* Update language data and failing state: */
+    setFailed(!saveLanguageData());
 
     /* Upload properties to data: */
@@ -449,2 +445,28 @@
 }
 
+bool UIGlobalSettingsLanguage::saveLanguageData()
+{
+    /* Prepare result: */
+    bool fSuccess = true;
+    /* Save language settings from the cache: */
+    if (fSuccess && m_pCache->wasChanged())
+    {
+        /* Get old language data from the cache: */
+        const UIDataSettingsGlobalLanguage &oldLanguageData = m_pCache->base();
+        /* Get new language data from the cache: */
+        const UIDataSettingsGlobalLanguage &newLanguageData = m_pCache->data();
+
+        // Here could go changes for m_properties.
+
+        /* Show error message if necessary: */
+        if (!fSuccess)
+            msgCenter().cannotSaveLanguageSettings(m_properties, this);
+
+        /* Save new language data from the cache: */
+        if (newLanguageData.m_strLanguageId != oldLanguageData.m_strLanguageId)
+            gEDataManager->setLanguageId(newLanguageData.m_strLanguageId);
+    }
+    /* Return result: */
+    return fSuccess;
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.h	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsLanguage.h	(revision 66600)
@@ -83,4 +83,7 @@
     void reloadLanguageTree(const QString &strLanguageId);
 
+    /** Saves existing language data from the cache. */
+    bool saveLanguageData();
+
     /** Holds whether the page is polished. */
     bool m_fPolished;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.cpp	(revision 66600)
@@ -27,4 +27,5 @@
 # include "UIGlobalSettingsProxy.h"
 # include "UIExtraDataManager.h"
+# include "UIMessageCenter.h"
 # include "VBoxUtils.h"
 
@@ -144,14 +145,6 @@
     UISettingsPageGlobal::fetchData(data);
 
-    /* Make sure proxy data was changed: */
-    if (m_pCache->wasChanged())
-    {
-        /* Save new proxy data from the cache: */
-        UIProxyManager proxyManager;
-        proxyManager.setProxyState(m_pCache->data().m_enmProxyState);
-        proxyManager.setProxyHost(m_pCache->data().m_strProxyHost);
-        proxyManager.setProxyPort(m_pCache->data().m_strProxyPort);
-        gEDataManager->setProxySettings(proxyManager.toString());
-    }
+    /* Update proxy data and failing state: */
+    setFailed(!saveProxyData());
 
     /* Upload properties to data: */
@@ -259,2 +252,31 @@
 }
 
+bool UIGlobalSettingsProxy::saveProxyData()
+{
+    /* Prepare result: */
+    bool fSuccess = true;
+    /* Save proxy settings from the cache: */
+    if (fSuccess && m_pCache->wasChanged())
+    {
+        /* Get old proxy data from the cache: */
+        //const UIDataSettingsGlobalProxy &oldProxyData = m_pCache->base();
+        /* Get new proxy data from the cache: */
+        const UIDataSettingsGlobalProxy &newProxyData = m_pCache->data();
+
+        // Here could go changes for m_properties.
+
+        /* Show error message if necessary: */
+        if (!fSuccess)
+            msgCenter().cannotSaveProxySettings(m_properties, this);
+
+        /* Save new proxy data from the cache: */
+        UIProxyManager proxyManager;
+        proxyManager.setProxyState(newProxyData.m_enmProxyState);
+        proxyManager.setProxyHost(newProxyData.m_strProxyHost);
+        proxyManager.setProxyPort(newProxyData.m_strProxyPort);
+        gEDataManager->setProxySettings(proxyManager.toString());
+    }
+    /* Return result: */
+    return fSuccess;
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsProxy.h	(revision 66600)
@@ -76,4 +76,7 @@
     void cleanup();
 
+    /** Saves existing proxy data from the cache. */
+    bool saveProxyData();
+
     /** Holds the page data cache instance. */
     UISettingsCacheGlobalProxy *m_pCache;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.cpp	(revision 66600)
@@ -23,4 +23,5 @@
 # include "UIGlobalSettingsUpdate.h"
 # include "UIExtraDataManager.h"
+# include "UIMessageCenter.h"
 # include "VBoxGlobal.h"
 
@@ -144,11 +145,6 @@
     UISettingsPageGlobal::fetchData(data);
 
-    /* Make sure update data was changed: */
-    if (m_pCache->wasChanged())
-    {
-        /* Save new update data from the cache: */
-        const VBoxUpdateData newData(m_pCache->data().m_periodIndex, m_pCache->data().m_branchIndex);
-        gEDataManager->setApplicationUpdateData(newData.data());
-    }
+    /* Update update data and failing state: */
+    setFailed(!saveUpdateData());
 
     /* Upload properties to data: */
@@ -251,2 +247,28 @@
 }
 
+bool UIGlobalSettingsUpdate::saveUpdateData()
+{
+    /* Prepare result: */
+    bool fSuccess = true;
+    /* Save update settings from the cache: */
+    if (fSuccess && m_pCache->wasChanged())
+    {
+        /* Get old update data from the cache: */
+        //const UIDataSettingsGlobalUpdate &oldUpdateData = m_pCache->base();
+        /* Get new update data from the cache: */
+        const UIDataSettingsGlobalUpdate &newUpdateData = m_pCache->data();
+
+        // Here could go changes for m_properties.
+
+        /* Show error message if necessary: */
+        if (!fSuccess)
+            msgCenter().cannotSaveUpdateSettings(m_properties, this);
+
+        /* Save new update data from the cache: */
+        const VBoxUpdateData newData(newUpdateData.m_periodIndex, newUpdateData.m_branchIndex);
+        gEDataManager->setApplicationUpdateData(newData.data());
+    }
+    /* Return result: */
+    return fSuccess;
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.h	(revision 66599)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsUpdate.h	(revision 66600)
@@ -83,4 +83,7 @@
     VBoxUpdateData::BranchType branchType() const;
 
+    /** Saves existing update data from the cache. */
+    bool saveUpdateData();
+
     /** Holds the last checked button reference. */
     QRadioButton *m_pLastChosenRadio;
