Index: /trunk/src/VBox/Main/SystemPropertiesImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/SystemPropertiesImpl.cpp	(revision 30949)
+++ /trunk/src/VBox/Main/SystemPropertiesImpl.cpp	(revision 30950)
@@ -43,5 +43,6 @@
 
 SystemProperties::SystemProperties()
-    : mParent(NULL)
+    : mParent(NULL),
+      m(new settings::SystemProperties)
 {
 }
@@ -49,4 +50,5 @@
 SystemProperties::~SystemProperties()
 {
+    delete m;
 }
 
@@ -88,5 +90,5 @@
     setRemoteDisplayAuthLibrary(Utf8Str::Null);
 
-    mLogHistoryCount = 3;
+    m->ulLogHistoryCount = 3;
 
     HRESULT rc = S_OK;
@@ -112,5 +114,5 @@
             if (FAILED(rc)) break;
 
-            mMediumFormats.push_back(hdf);
+            m_llMediumFormats.push_back(hdf);
         }
     }
@@ -577,5 +579,5 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    SafeIfaceArray<IMediumFormat> mediumFormats(mMediumFormats);
+    SafeIfaceArray<IMediumFormat> mediumFormats(m_llMediumFormats);
     mediumFormats.detachTo(ComSafeArrayOutArg(aMediumFormats));
 
@@ -592,5 +594,5 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    m_strDefaultHardDiskFormat.cloneTo(aDefaultHardDiskFormat);
+    m->strDefaultHardDiskFormat.cloneTo(aDefaultHardDiskFormat);
 
     return S_OK;
@@ -673,5 +675,5 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    m_strRemoteDisplayAuthLibrary.cloneTo(aRemoteDisplayAuthLibrary);
+    m->strRemoteDisplayAuthLibrary.cloneTo(aRemoteDisplayAuthLibrary);
 
     return S_OK;
@@ -706,5 +708,5 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    m_strWebServiceAuthLibrary.cloneTo(aWebServiceAuthLibrary);
+    m->strWebServiceAuthLibrary.cloneTo(aWebServiceAuthLibrary);
 
     return S_OK;
@@ -739,5 +741,5 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    *count = mLogHistoryCount;
+    *count = m->ulLogHistoryCount;
 
     return S_OK;
@@ -750,5 +752,5 @@
 
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
-    mLogHistoryCount = count;
+    m->ulLogHistoryCount = count;
     alock.release();
 
@@ -801,5 +803,5 @@
     if (FAILED(rc)) return rc;
 
-    mLogHistoryCount = data.ulLogHistoryCount;
+    m->ulLogHistoryCount = data.ulLogHistoryCount;
 
     return S_OK;
@@ -813,10 +815,5 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    data.strDefaultMachineFolder = m_strDefaultMachineFolder;
-    data.strDefaultHardDiskFolder = m_strDefaultHardDiskFolder;
-    data.strDefaultHardDiskFormat = m_strDefaultHardDiskFormat;
-    data.strRemoteDisplayAuthLibrary = m_strRemoteDisplayAuthLibrary;
-    data.strWebServiceAuthLibrary = m_strWebServiceAuthLibrary;
-    data.ulLogHistoryCount = mLogHistoryCount;
+    data = *m;
 
     return S_OK;
@@ -840,6 +837,7 @@
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
 
-    for (MediumFormatList::const_iterator it = mMediumFormats.begin();
-         it != mMediumFormats.end(); ++ it)
+    for (MediumFormatList::const_iterator it = m_llMediumFormats.begin();
+         it != m_llMediumFormats.end();
+         ++ it)
     {
         /* MediumFormat is all const, no need to lock */
@@ -873,5 +871,5 @@
                         vrc);
 
-    m_strDefaultMachineFolder = path;
+    m->strDefaultMachineFolder = path;
     m_strDefaultMachineFolderFull = folder;
 
@@ -894,5 +892,5 @@
                         vrc);
 
-    m_strDefaultHardDiskFolder = path;
+    m->strDefaultHardDiskFolder = path;
     m_strDefaultHardDiskFolderFull = folder;
 
@@ -903,7 +901,7 @@
 {
     if (!aFormat.isEmpty())
-        m_strDefaultHardDiskFormat = aFormat;
+        m->strDefaultHardDiskFormat = aFormat;
     else
-        m_strDefaultHardDiskFormat = "VDI";
+        m->strDefaultHardDiskFormat = "VDI";
 
     return S_OK;
@@ -913,7 +911,7 @@
 {
     if (!aPath.isEmpty())
-        m_strRemoteDisplayAuthLibrary = aPath;
+        m->strRemoteDisplayAuthLibrary = aPath;
     else
-        m_strRemoteDisplayAuthLibrary = "VRDPAuth";
+        m->strRemoteDisplayAuthLibrary = "VRDPAuth";
 
     return S_OK;
@@ -923,9 +921,9 @@
 {
     if (!aPath.isEmpty())
-        m_strWebServiceAuthLibrary = aPath;
+        m->strWebServiceAuthLibrary = aPath;
     else
-        m_strWebServiceAuthLibrary = "VRDPAuth";
-
-    return S_OK;
-}
-
+        m->strWebServiceAuthLibrary = "VRDPAuth";
+
+    return S_OK;
+}
+
Index: /trunk/src/VBox/Main/VirtualBoxImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/VirtualBoxImpl.cpp	(revision 30949)
+++ /trunk/src/VBox/Main/VirtualBoxImpl.cpp	(revision 30950)
@@ -3202,5 +3202,5 @@
 {
     AutoReadLock propsLock(m->pSystemProperties COMMA_LOCKVAL_SRC_POS);
-    return m->pSystemProperties->m_strDefaultMachineFolder;
+    return m->pSystemProperties->m->strDefaultMachineFolder;
 }
 
@@ -3213,5 +3213,5 @@
 {
     AutoReadLock propsLock(m->pSystemProperties COMMA_LOCKVAL_SRC_POS);
-    return m->pSystemProperties->m_strDefaultHardDiskFolder;
+    return m->pSystemProperties->m->strDefaultHardDiskFolder;
 }
 
@@ -3224,5 +3224,5 @@
 {
     AutoReadLock propsLock(m->pSystemProperties COMMA_LOCKVAL_SRC_POS);
-    return m->pSystemProperties->m_strDefaultHardDiskFormat;
+    return m->pSystemProperties->m->strDefaultHardDiskFormat;
 }
 
Index: /trunk/src/VBox/Main/include/SystemPropertiesImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/SystemPropertiesImpl.h	(revision 30949)
+++ /trunk/src/VBox/Main/include/SystemPropertiesImpl.h	(revision 30950)
@@ -125,15 +125,10 @@
     VirtualBox * const  mParent;
 
-    Utf8Str             m_strDefaultMachineFolder;
+    settings::SystemProperties *m;
+
     Utf8Str             m_strDefaultMachineFolderFull;
-    Utf8Str             m_strDefaultHardDiskFolder;
     Utf8Str             m_strDefaultHardDiskFolderFull;
-    Utf8Str             m_strDefaultHardDiskFormat;
 
-    MediumFormatList    mMediumFormats;
-
-    Utf8Str             m_strRemoteDisplayAuthLibrary;
-    Utf8Str             m_strWebServiceAuthLibrary;
-    ULONG               mLogHistoryCount;
+    MediumFormatList    m_llMediumFormats;
 
     friend class VirtualBox;
