Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 83689)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 83690)
@@ -595,4 +595,11 @@
           tr("Encryption password for <nobr>ID = '%1'</nobr> is invalid.")
              .arg(strPasswordId));
+}
+
+void UIMessageCenter::cannotAcquireVirtualBoxParameter(const CVirtualBox &comVBox, QWidget *pParent /* = 0 */) const
+{
+    /* Show the error: */
+    error(pParent, MessageType_Error,
+          tr("Failed to acquire VirtualBox parameter."), UIErrorString::formatErrorInfo(comVBox));
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 83689)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 83690)
@@ -263,4 +263,5 @@
     void cannotSetExtraData(const CMachine &machine, const QString &strKey, const QString &strValue);
     void warnAboutInvalidEncryptionPassword(const QString &strPasswordId, QWidget *pParent = 0);
+    void cannotAcquireVirtualBoxParameter(const CVirtualBox &comVBox, QWidget *pParent = 0) const;
     void cannotAcquireMachineParameter(const CMachine &comMachine, QWidget *pParent = 0) const;
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp	(revision 83689)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserAbstractModel.cpp	(revision 83690)
@@ -75,26 +75,56 @@
 
         /* Create global node: */
-        new UIChooserNodeGlobal(invisibleRoot(),
+        new UIChooserNodeGlobal(invisibleRoot() /* parent */,
                                 isGlobalNodeFavorite(invisibleRoot()),
                                 0 /* position */,
                                 QString() /* tip */);
 
-        /* Add all the approved machine nodes into the tree: */
-        LogRelFlow(("UIChooserModel: Loading VMs...\n"));
-        foreach (const CMachine &comMachine, uiCommon().virtualBox().GetMachines())
+        /* Acquire VBox: */
+        const CVirtualBox comVBox = uiCommon().virtualBox();
+
+        /* Add local machines: */
+        LogRelFlow(("UIChooserAbstractModel: Loading local VMs...\n"));
+        /* Acquire existing machines: */
+        const QVector<CMachine> machines = comVBox.GetMachines();
+        /* Show error message if necessary: */
+        if (!comVBox.isOk())
+            msgCenter().cannotAcquireVirtualBoxParameter(comVBox);
+        else
         {
-            const QUuid uMachineID = comMachine.GetId();
-            if (!uMachineID.isNull() && gEDataManager->showMachineInVirtualBoxManagerChooser(uMachineID))
+            /* Iterate through existing machines: */
+            foreach (const CMachine &comMachine, machines)
+            {
+                /* Skip if we have nothing to populate (wtf happened?): */
+                if (comMachine.isNull())
+                    continue;
+
+                /* Get machine ID: */
+                const QUuid uMachineID = comMachine.GetId();
+                /* Show error message if necessary: */
+                if (!comMachine.isOk())
+                {
+                    msgCenter().cannotAcquireMachineParameter(comMachine);
+                    continue;
+                }
+
+                /* Skip if we have nothing to show (wtf happened?): */
+                if (uMachineID.isNull())
+                    continue;
+
+                /* Skip if machine is restricted from being shown: */
+                if (!gEDataManager->showMachineInVirtualBoxManagerChooser(uMachineID))
+                    continue;
+
+                /* Add machine into tree: */
                 addMachineIntoTheTree(comMachine);
+            }
         }
-        LogRelFlow(("UIChooserModel: VMs loaded.\n"));
+        LogRelFlow(("UIChooserAbstractModel: Local VMs loaded.\n"));
 
 #ifdef VBOX_GUI_WITH_CLOUD_VMS
-        /* Add cloud provider groups: */
-        LogRelFlow(("UIChooserModel: Loading cloud providers...\n"));
-        /* Acquire VBox: */
-        CVirtualBox comVBox = uiCommon().virtualBox();
-        /* Acquire Cloud Provider Manager: */
-        CCloudProviderManager comCloudProviderManager = comVBox.GetCloudProviderManager();
+        /* Add cloud providers/profiles: */
+        LogRelFlow(("UIChooserAbstractModel: Loading cloud providers/profiles...\n"));
+        /* Acquire cloud provider manager: */
+        const CCloudProviderManager comCloudProviderManager = comVBox.GetCloudProviderManager();
         /* Show error message if necessary: */
         if (!comVBox.isOk())
@@ -115,6 +145,15 @@
                     if (comCloudProvider.isNull())
                         continue;
+
+                    /* Get profile names: */
+                    const QVector<QString> profileNames = comCloudProvider.GetProfileNames();
+                    /* Show error message if necessary: */
+                    if (!comCloudProvider.isOk())
+                    {
+                        msgCenter().cannotAcquireCloudProviderParameter(comCloudProvider);
+                        continue;
+                    }
+
                     /* Skip if we have nothing to populate (profiles missing?): */
-                    const QVector<QString> profileNames = comCloudProvider.GetProfileNames();
                     if (profileNames.isEmpty())
                         continue;
@@ -124,65 +163,68 @@
                     /* Show error message if necessary: */
                     if (!comCloudProvider.isOk())
+                    {
                         msgCenter().cannotAcquireCloudProviderParameter(comCloudProvider);
-                    else
+                        continue;
+                    }
+
+                    /* Add provider group node: */
+                    UIChooserNodeGroup *pProviderNode =
+                        new UIChooserNodeGroup(invisibleRoot() /* parent */,
+                                               false /* favorite */,
+                                               getDesiredNodePosition(invisibleRoot(),
+                                                                      UIChooserNodeType_Group,
+                                                                      strProviderName),
+                                               strProviderName,
+                                               UIChooserNodeGroupType_Provider,
+                                               false /* opened */);
+
+                    /* Iterate through provider's profile names: */
+                    foreach (const QString &strProfileName, profileNames)
                     {
-                        /* Add provider group node: */
-                        UIChooserNodeGroup *pProviderNode =
-                            new UIChooserNodeGroup(invisibleRoot(),
+                        /* Skip if we have nothing to show (wtf happened?): */
+                        if (strProfileName.isEmpty())
+                            continue;
+
+                        /* Acquire cloud profile: */
+                        CCloudProfile comCloudProfile = comCloudProvider.GetProfileByName(strProfileName);
+                        /* Show error message if necessary: */
+                        if (!comCloudProvider.isOk())
+                        {
+                            msgCenter().cannotFindCloudProfile(comCloudProvider, strProfileName);
+                            continue;
+                        }
+
+                        /* Create cloud client: */
+                        CCloudClient comCloudClient = comCloudProfile.CreateCloudClient();
+                        /* Show error message if necessary: */
+                        if (!comCloudProfile.isOk())
+                        {
+                            msgCenter().cannotCreateCloudClient(comCloudProfile);
+                            continue;
+                        }
+
+                        /* Add profile sub-group node: */
+                        UIChooserNodeGroup *pProfileNode =
+                            new UIChooserNodeGroup(pProviderNode /* parent */,
                                                    false /* favorite */,
-                                                   getDesiredNodePosition(invisibleRoot(),
+                                                   getDesiredNodePosition(pProviderNode,
                                                                           UIChooserNodeType_Group,
-                                                                          strProviderName),
-                                                   strProviderName,
-                                                   UIChooserNodeGroupType_Provider,
-                                                   false /* opened */);
-
-                        /* Iterate through existing profile names: */
-                        foreach (const QString &strProfileName, profileNames)
+                                                                          strProfileName),
+                                                   strProfileName,
+                                                   UIChooserNodeGroupType_Profile,
+                                                   true /* opened */);
+                        /* Add fake cloud VM item: */
+                        new UIChooserNodeMachine(pProfileNode /* parent */,
+                                                 false /* favorite */,
+                                                 0 /* position */);
+
+                        /* Create cloud list machines task: */
+                        UITaskCloudListMachines *pTask = new UITaskCloudListMachines(comCloudClient,
+                                                                                     pProfileNode);
+                        if (pTask)
                         {
-                            /* Skip if we have nothing to show (wtf happened?): */
-                            if (strProfileName.isEmpty())
-                                continue;
-
-                            /* Acquire Cloud Profile: */
-                            CCloudProfile comCloudProfile = comCloudProvider.GetProfileByName(strProfileName);
-                            /* Show error message if necessary: */
-                            if (!comCloudProvider.isOk())
-                                msgCenter().cannotFindCloudProfile(comCloudProvider, strProfileName);
-                            else
-                            {
-                                /* Create Cloud Client: */
-                                CCloudClient comCloudClient = comCloudProfile.CreateCloudClient();
-                                /* Show error message if necessary: */
-                                if (!comCloudProfile.isOk())
-                                    msgCenter().cannotCreateCloudClient(comCloudProfile);
-                                else
-                                {
-                                    /* Add profile sub-group node: */
-                                    UIChooserNodeGroup *pProfileNode =
-                                        new UIChooserNodeGroup(pProviderNode,
-                                                               false /* favorite */,
-                                                               getDesiredNodePosition(pProviderNode,
-                                                                                      UIChooserNodeType_Group,
-                                                                                      strProfileName),
-                                                               strProfileName,
-                                                               UIChooserNodeGroupType_Profile,
-                                                               true /* opened */);
-                                    /* Add fake cloud VM item: */
-                                    new UIChooserNodeMachine(pProfileNode,
-                                                             false /* favorite */,
-                                                             0 /* position */);
-
-                                    /* Create cloud acquire isntances task: */
-                                    UITaskCloudListMachines *pTask = new UITaskCloudListMachines(comCloudClient,
-                                                                                                 pProfileNode);
-                                    if (pTask)
-                                    {
-                                        connect(uiCommon().threadPoolCloud(), &UIThreadPool::sigTaskComplete,
-                                                this, &UIChooserAbstractModel::sltHandleCloudListMachinesTaskComplete);
-                                        uiCommon().threadPoolCloud()->enqueueTask(pTask);
-                                    }
-                                }
-                            }
+                            connect(uiCommon().threadPoolCloud(), &UIThreadPool::sigTaskComplete,
+                                    this, &UIChooserAbstractModel::sltHandleCloudListMachinesTaskComplete);
+                            uiCommon().threadPoolCloud()->enqueueTask(pTask);
                         }
                     }
@@ -190,5 +232,5 @@
             }
         }
-        LogRelFlow(("UIChooserModel: Cloud providers loaded.\n"));
+        LogRelFlow(("UIChooserAbstractModel: Cloud providers/profiles loaded.\n"));
 #endif /* VBOX_GUI_WITH_CLOUD_VMS */
     }
