Index: /trunk/src/VBox/Main/include/CloudClientImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/CloudClientImpl.h	(revision 73172)
+++ /trunk/src/VBox/Main/include/CloudClientImpl.h	(revision 73173)
@@ -32,5 +32,5 @@
 public:
     DECLARE_EMPTY_CTOR_DTOR(CloudClient)
-    explicit CloudClient(CloudProviderId_T aCloudProvider);
+//  explicit CloudClient(CloudProviderId_T aCloudProvider);
 
     HRESULT FinalConstruct();
@@ -44,7 +44,6 @@
     void uninit();
 
-private:
+protected:
     ComPtr<VirtualBox> const mParent;       /**< Strong reference to the parent object (VirtualBox/IMachine). */
-    ComPtr<Machine> mMachine;               /**< Strong reference to the machine object (Machine/IMachine). */
     CloudProviderId_T mCloudProvider;
     std::map <Utf8Str, Utf8Str> userProfile;
@@ -71,4 +70,5 @@
                                       const std::vector<com::Utf8Str> &aValues);
 };
+
 #endif // !____H_CLOUDCLIENTIMPL
 /* vi: set tabstop=4 shiftwidth=4 expandtab: */
Index: /trunk/src/VBox/Main/include/CloudUserProfileListImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/CloudUserProfileListImpl.h	(revision 73172)
+++ /trunk/src/VBox/Main/include/CloudUserProfileListImpl.h	(revision 73173)
@@ -98,9 +98,10 @@
     HRESULT readProfiles(const Utf8Str &strConfigPath);
 
-    HRESULT createProfile(const com::Utf8Str &aProfileName,
+private:
+    HRESULT i_createProfile(const com::Utf8Str &aProfileName,
                           const std::map <Utf8Str, Utf8Str> &aProfile);
-    HRESULT updateProfile(const com::Utf8Str &aProfileName,
+    HRESULT i_updateProfile(const com::Utf8Str &aProfileName,
                           const std::map <Utf8Str, Utf8Str> &aProfile);
-    HRESULT getProfileProperties(const com::Utf8Str &aName,
+    HRESULT i_getProfileProperties(const com::Utf8Str &aName,
                                  std::map <Utf8Str, Utf8Str> &aProfileName);
 private:
Index: /trunk/src/VBox/Main/src-server/CloudClientImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/CloudClientImpl.cpp	(revision 73172)
+++ /trunk/src/VBox/Main/src-server/CloudClientImpl.cpp	(revision 73173)
@@ -51,10 +51,10 @@
 }
 
-CloudClient::CloudClient(CloudProviderId_T aCloudProvider)
-    : mParent(NULL)
-{
-    LogRel(("CloudClient::CloudClient(CloudProviderId_T %d)\n", mCloudProvider));
-    mCloudProvider = aCloudProvider;
-}
+//CloudClient::CloudClient(CloudProviderId_T aCloudProvider)
+//    : mParent(NULL)
+//{
+//    LogRel(("CloudClient::CloudClient(CloudProviderId_T %d)\n", mCloudProvider));
+//    mCloudProvider = aCloudProvider;
+//}
 
 HRESULT CloudClient::FinalConstruct()
@@ -79,5 +79,4 @@
 
     unconst(mParent) = NULL;
-    mMachine.setNull();
 }
 
@@ -245,3 +244,2 @@
     return hrc;
 }
-
Index: /trunk/src/VBox/Main/src-server/CloudUserProfileListImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/CloudUserProfileListImpl.cpp	(revision 73172)
+++ /trunk/src/VBox/Main/src-server/CloudUserProfileListImpl.cpp	(revision 73173)
@@ -236,11 +236,21 @@
 void CloudUserProfileList::uninit()
 {
-
+    /* Enclose the state transition Ready->InUninit->NotReady */
+    AutoUninitSpan autoUninitSpan(this);
+    if (autoUninitSpan.uninitDone())
+        return;
+
+    unconst(mParent) = NULL;
 }
 
 HRESULT CloudUserProfileList::init(VirtualBox *aParent)
 {
+    /* Enclose the state transition NotReady->InInit->Ready */
+    AutoInitSpan autoInitSpan(this);
+    AssertReturn(autoInitSpan.isOk(), E_FAIL);
+
     unconst(mParent) = aParent;
 
+    autoInitSpan.setSucceeded();
     return S_OK;
 }
@@ -360,6 +370,7 @@
                                               ComPtr<ICloudClient> &aCloudClient)
 {
+    HRESULT hrc = S_OK;
     CloudProviderId_T providerId;
-    HRESULT hrc = getProvider(&providerId);
+    hrc = getProvider(&providerId);
 
     ComObjPtr<CloudClient> ptrCloudClient;
@@ -472,5 +483,5 @@
     {
         std::map <Utf8Str, Utf8Str> profile;
-        hrc = getProfileProperties(aProfileName, profile);
+        hrc = i_getProfileProperties(aProfileName, profile);
         if (SUCCEEDED(hrc))
         {
@@ -482,4 +493,5 @@
                 aReturnNames.push_back(cit->first);
                 aReturnValues.push_back(cit->second);
+                ++cit;
             }
         }
@@ -511,6 +523,6 @@
 
 
-HRESULT OCIUserProfileList::createProfile(const com::Utf8Str &aProfileName,
-                                          const std::map <Utf8Str, Utf8Str> &aProfile)
+HRESULT OCIUserProfileList::i_createProfile(const com::Utf8Str &aProfileName,
+                                           const std::map <Utf8Str, Utf8Str> &aProfile)
 {
     HRESULT hrc = S_OK;
@@ -521,6 +533,6 @@
 }
 
-HRESULT OCIUserProfileList::updateProfile(const com::Utf8Str &aProfileName,
-                                          const std::map <Utf8Str, Utf8Str> &aProfile)
+HRESULT OCIUserProfileList::i_updateProfile(const com::Utf8Str &aProfileName,
+                                           const std::map <Utf8Str, Utf8Str> &aProfile)
 {
     HRESULT hrc = S_OK;
@@ -533,6 +545,6 @@
 }
 
-HRESULT OCIUserProfileList::getProfileProperties(const com::Utf8Str &aProfileName,
-                                                 std::map <Utf8Str, Utf8Str> &aProfile)
+HRESULT OCIUserProfileList::i_getProfileProperties(const com::Utf8Str &aProfileName,
+                                                  std::map <Utf8Str, Utf8Str> &aProfile)
 {
     HRESULT hrc = S_OK;
Index: /trunk/src/VBox/Main/src-server/CloudUserProfileManagerImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/CloudUserProfileManagerImpl.cpp	(revision 73172)
+++ /trunk/src/VBox/Main/src-server/CloudUserProfileManagerImpl.cpp	(revision 73173)
@@ -128,5 +128,7 @@
                 if (SUCCEEDED(hrc))
                 {
-                    Utf8Str strConfigPath = mParent->i_homeDir();
+                    char szHomeDir[RTPATH_MAX];
+                    int vrc = RTPathUserHome(szHomeDir, sizeof(szHomeDir));
+                    Utf8Str strConfigPath(szHomeDir);
                     strConfigPath.append(RTPATH_SLASH_STR)
                                  .append(".oci")
