Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp	(revision 54931)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.cpp	(revision 54932)
@@ -65,4 +65,6 @@
     , m_fPolished(false)
     /* Loading/saving stuff: */
+    , m_pSerializeProcess(0)
+    , m_pSerializeProgress(0)
     , m_fLoaded(false)
     , m_fSaved(false)
@@ -150,7 +152,15 @@
 UISettingsDialog::~UISettingsDialog()
 {
-    /* Delete serializer early if exists: */
-    if (UISettingsSerializer::instance())
-        delete UISettingsSerializer::instance();
+    /* Delete serializer if exists: */
+    if (serializeProcess())
+    {
+        delete m_pSerializeProcess;
+        m_pSerializeProcess = 0;
+    }
+    if (serializeProgress())
+    {
+        delete m_pSerializeProgress;
+        m_pSerializeProgress = 0;
+    }
 
     /* Recall popup-pane if any: */
@@ -208,7 +218,15 @@
 void UISettingsDialog::sltMarkLoaded()
 {
-    /* Delete serializer early if exists: */
-    if (UISettingsSerializer::instance())
-        delete UISettingsSerializer::instance();
+    /* Delete serializer if exists: */
+    if (serializeProcess())
+    {
+        delete m_pSerializeProcess;
+        m_pSerializeProcess = 0;
+    }
+    if (serializeProgress())
+    {
+        delete m_pSerializeProgress;
+        m_pSerializeProgress = 0;
+    }
 
     /* Mark as loaded: */
@@ -218,7 +236,15 @@
 void UISettingsDialog::sltMarkSaved()
 {
-    /* Delete serializer early if exists: */
-    if (UISettingsSerializer::instance())
-        delete UISettingsSerializer::instance();
+    /* Delete serializer if exists: */
+    if (serializeProcess())
+    {
+        delete m_pSerializeProcess;
+        m_pSerializeProcess = 0;
+    }
+    if (serializeProgress())
+    {
+        delete m_pSerializeProgress;
+        m_pSerializeProgress = 0;
+    }
 
     /* Mark as saved: */
@@ -250,20 +276,20 @@
 
     /* Create settings loader: */
-    UISettingsSerializer *pSettingsLoader = new UISettingsSerializer(this, UISettingsSerializer::Load,
-                                                                     data, m_pSelector->settingPages());
-    AssertPtrReturnVoid(pSettingsLoader);
+    m_pSerializeProcess = new UISettingsSerializer(this, UISettingsSerializer::Load,
+                                                   data, m_pSelector->settingPages());
+    AssertPtrReturnVoid(m_pSerializeProcess);
     {
         /* Configure settings loader: */
-        connect(pSettingsLoader, SIGNAL(sigNotifyAboutProcessStarted()), this, SLOT(sltHandleProcessStarted()));
-        connect(pSettingsLoader, SIGNAL(sigNotifyAboutPagePostprocessed(int)), this, SLOT(sltHandlePageProcessed()));
-        connect(pSettingsLoader, SIGNAL(sigNotifyAboutProcessFinished()), this, SLOT(sltMarkLoaded()));
+        connect(m_pSerializeProcess, SIGNAL(sigNotifyAboutProcessStarted()), this, SLOT(sltHandleProcessStarted()));
+        connect(m_pSerializeProcess, SIGNAL(sigNotifyAboutPagePostprocessed(int)), this, SLOT(sltHandlePageProcessed()));
+        connect(m_pSerializeProcess, SIGNAL(sigNotifyAboutProcessFinished()), this, SLOT(sltMarkLoaded()));
         /* Raise current page priority: */
-        pSettingsLoader->raisePriorityOfPage(m_pSelector->currentId());
+        m_pSerializeProcess->raisePriorityOfPage(m_pSelector->currentId());
         /* Start settings loader: */
-        pSettingsLoader->start();
+        m_pSerializeProcess->start();
     }
 
     /* Upload data finally: */
-    data = pSettingsLoader->data();
+    data = m_pSerializeProcess->data();
 }
 
@@ -274,16 +300,14 @@
 
     /* Create settings saver: */
-    UISettingsSerializerProgress *pSettingsSaveProgress = new UISettingsSerializerProgress(this, UISettingsSerializer::Save,
-                                                                                           data, m_pSelector->settingPages());
-    AssertPtrReturnVoid(pSettingsSaveProgress);
-    {
-        /* Configure settings saver: */
-        connect(pSettingsSaveProgress, SIGNAL(finished(int)), this, SLOT(sltMarkSaved()));
+    m_pSerializeProgress = new UISettingsSerializerProgress(this, UISettingsSerializer::Save,
+                                                            data, m_pSelector->settingPages());
+    AssertPtrReturnVoid(m_pSerializeProgress);
+    {
         /* Start settings saver: */
-        pSettingsSaveProgress->exec();
+        m_pSerializeProgress->exec();
     }
 
     /* Upload data finally: */
-    data = pSettingsSaveProgress->data();
+    data = m_pSerializeProgress->data();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.h	(revision 54931)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialog.h	(revision 54932)
@@ -32,4 +32,6 @@
 class VBoxSettingsSelector;
 class UISettingsPage;
+class UISettingsSerializer;
+class UISettingsSerializerProgress;
 
 /* Using declarations: */
@@ -68,4 +70,9 @@
 
 protected:
+
+    /** Returns the serialize process instance. */
+    UISettingsSerializer* serializeProcess() const { return m_pSerializeProcess; }
+    /** Returns the serialize progress instance. */
+    UISettingsSerializerProgress* serializeProgress() const { return m_pSerializeProgress; }
 
     /** Loads the @a data. */
@@ -136,4 +143,9 @@
     bool m_fPolished;
 
+    /** Holds the serialize process instance. */
+    UISettingsSerializer *m_pSerializeProcess;
+    /** Holds the serialize progress instance. */
+    UISettingsSerializerProgress *m_pSerializeProgress;
+
     /* Loading/saving stuff: */
     bool m_fLoaded;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 54931)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsDialogSpecific.cpp	(revision 54932)
@@ -235,4 +235,7 @@
     else if (!(newSettings == settings))
         vboxGlobal().setSettings(newSettings);
+
+    /* Mark as saved: */
+    sltMarkSaved();
 }
 
@@ -573,4 +576,7 @@
     if (!m_machine.isOk())
         msgCenter().cannotSaveMachineSettings(m_machine, this);
+
+    /* Mark as saved: */
+    sltMarkSaved();
 }
 
@@ -780,6 +786,6 @@
 void UISettingsDialogMachine::sltCategoryChanged(int cId)
 {
-    if (UISettingsSerializer::instance())
-        UISettingsSerializer::instance()->raisePriorityOfPage(cId);
+    if (serializeProcess())
+        serializeProcess()->raisePriorityOfPage(cId);
 
     UISettingsDialog::sltCategoryChanged(cId);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsSerializer.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsSerializer.cpp	(revision 54931)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsSerializer.cpp	(revision 54932)
@@ -26,6 +26,4 @@
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
-UISettingsSerializer* UISettingsSerializer::m_spInstance = 0;
-
 UISettingsSerializer::UISettingsSerializer(QObject *pParent, SerializationDirection direction,
                                            const QVariant &data, const UISettingsPageList &pages)
@@ -36,7 +34,4 @@
     , m_iIdOfHighPriorityPage(-1)
 {
-    /* Prepare instance: */
-    m_spInstance = this;
-
     /* Copy the page(s) from incoming list to our map: */
     foreach (UISettingsPage *pPage, pages)
@@ -58,7 +53,4 @@
     if (isRunning())
         wait();
-
-    /* Cleanup instance: */
-    m_spInstance = 0;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsSerializer.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsSerializer.h	(revision 54931)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/UISettingsSerializer.h	(revision 54932)
@@ -66,7 +66,4 @@
     enum SerializationDirection { Load, Save };
 
-    /** Returns the singleton instance. */
-    static UISettingsSerializer* instance() { return m_spInstance; }
-
     /** Constructor.
       * @param pParent   being passed to the base-class,
@@ -109,7 +106,4 @@
     /** Worker-thread serialization rutine. */
     void run();
-
-    /** Holds the singleton instance. */
-    static UISettingsSerializer *m_spInstance;
 
     /** Holds the load/save direction. */
