Index: /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileDetailsWidget.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileDetailsWidget.h	(revision 75375)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileDetailsWidget.h	(revision 75376)
@@ -20,4 +20,5 @@
 
 /* Qt includes: */
+#include <QMap>
 #include <QUuid>
 #include <QWidget>
@@ -62,4 +63,7 @@
     /** Holds the provider name. */
     QString  m_strName;
+
+    /** Holds the profile supported property descriptions. */
+    QMap<QString, QString>  m_propertyDescriptions;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.cpp	(revision 75375)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.cpp	(revision 75376)
@@ -265,5 +265,5 @@
                     /* Update profile in the tree: */
                     UIDataCloudProfile data;
-                    loadCloudProfile(comCloudProfile, data);
+                    loadCloudProfile(comCloudProfile, *pProviderItem, data);
                     updateItemForCloudProfile(data, true, pProfileItem);
 
@@ -333,6 +333,6 @@
         {
             /* Create new profile: */
-            QVector<QString> keys;
-            QVector<QString> values;
+            const QVector<QString> keys = pProviderItem->m_propertyDescriptions.keys().toVector();
+            const QVector<QString> values(keys.size());
             comCloudProvider.CreateProfile(strProfileName, keys, values);
 
@@ -351,24 +351,6 @@
                     /* Add profile to the tree: */
                     UIDataCloudProfile data;
-                    loadCloudProfile(comCloudProfile, data);
+                    loadCloudProfile(comCloudProfile, *pProviderItem, data);
                     createItemForCloudProfile(pProviderItem, data, true);
-
-                    /* If profile still Ok: */
-                    if (comCloudProfile.isOk())
-                    {
-                        /* Acquire supported property names: */
-                        const QVector<QString> supportedNames = comCloudProvider.GetSupportedPropertyNames();
-                        /* Show error message if necessary: */
-                        if (!comCloudProfile.isOk())
-                            msgCenter().cannotAcquireCloudProfileParameter(comCloudProfile, this);
-                        else
-                        {
-                            /* Add unknown supported properties to known properties list.
-                             * That allows to have at least something if we have nothing. */
-                            foreach (const QString &strSupportedName, supportedNames)
-                                if (!data.m_data.contains(strSupportedName))
-                                    data.m_data[strSupportedName] = qMakePair(QString(), QString());
-                        }
-                    }
 
                     /* If profile still Ok: */
@@ -390,5 +372,5 @@
                             /* Update profile in the tree: */
                             UIDataCloudProfile updatedData;
-                            loadCloudProfile(comCloudProfile, updatedData);
+                            loadCloudProfile(comCloudProfile, *pProviderItem, updatedData);
                             updateItemForCloudProfile(updatedData, true, static_cast<UIItemCloudProfile*>(m_pTreeWidget->currentItem()));
                             sltHandleCurrentItemChange();
@@ -778,5 +760,5 @@
                 /* Load profile data: */
                 UIDataCloudProfile profileData;
-                loadCloudProfile(comCloudProfile, profileData);
+                loadCloudProfile(comCloudProfile, providerData, profileData);
                 createItemForCloudProfile(pItem, profileData, false);
             }
@@ -794,7 +776,4 @@
 void UICloudProfileManagerWidget::loadCloudProvider(const CCloudProvider &comProvider, UIDataCloudProvider &data)
 {
-    Q_UNUSED(comProvider);
-    Q_UNUSED(data);
-
     /* Gather provider settings: */
     if (comProvider.isOk())
@@ -802,4 +781,6 @@
     if (comProvider.isOk())
         data.m_strName = comProvider.GetName();
+    foreach (const QString &strSupportedPropertyName, comProvider.GetSupportedPropertyNames())
+        data.m_propertyDescriptions[strSupportedPropertyName] = comProvider.GetPropertyDescription(strSupportedPropertyName);
 
     /* Show error message if necessary: */
@@ -808,12 +789,9 @@
 }
 
-void UICloudProfileManagerWidget::loadCloudProfile(const CCloudProfile &comProfile, UIDataCloudProfile &data)
-{
-    Q_UNUSED(comProfile);
-    Q_UNUSED(data);
-
+void UICloudProfileManagerWidget::loadCloudProfile(const CCloudProfile &comProfile, const UIDataCloudProvider &providerData, UIDataCloudProfile &profileData)
+{
     /* Gather profile settings: */
     if (comProfile.isOk())
-        data.m_strName = comProfile.GetName();
+        profileData.m_strName = comProfile.GetName();
 
     if (comProfile.isOk())
@@ -831,15 +809,7 @@
         if (comProfile.isOk())
         {
-            /* Acquire descriptions: */
-//          for (int i = 0; i < keys.size(); ++i)
-//          {
-//              descriptions[i] = comProfile.GetPropertyDescription(keys.at(i));
-//              if (!comProfile.isOk())
-//                  continue;
-//          }
-
             /* Enumerate all the keys: */
             for (int i = 0; i < keys.size(); ++i)
-                data.m_data[keys.at(i)] = qMakePair(values.at(i), descriptions.at(i));
+                profileData.m_data[keys.at(i)] = qMakePair(values.at(i), providerData.m_propertyDescriptions.value(keys.at(i)));
         }
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.h	(revision 75375)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/cloud/UICloudProfileManager.h	(revision 75376)
@@ -138,6 +138,6 @@
         /** Loads cloud @a comProvider data to passed @a data container. */
         void loadCloudProvider(const CCloudProvider &comProvider, UIDataCloudProvider &data);
-        /** Loads cloud @a comProfile data to passed @a data container. */
-        void loadCloudProfile(const CCloudProfile &comProfile, UIDataCloudProfile &data);
+        /** Loads cloud @a comProfile data to passed @a profileData container, using @a providerData as hint. */
+        void loadCloudProfile(const CCloudProfile &comProfile, const UIDataCloudProvider &providerData, UIDataCloudProfile &profileData);
     /** @} */
 
