Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageCloud.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageCloud.cpp	(revision 78147)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageCloud.cpp	(revision 78148)
@@ -128,13 +128,28 @@
                      RTEXITCODE_FAILURE);
 
+    ComPtr<IStringArray> pVMNamesHolder;
+    ComPtr<IStringArray> pVMIdsHolder;
     com::SafeArray<BSTR> arrayVMNames;
     com::SafeArray<BSTR> arrayVMIds;
+    ComPtr<IProgress> pProgress;
+
     RTPrintf("Getting a list of available cloud instances...\n");
     RTPrintf("Reply is in the form \'instance name\' = \'instance id\'\n");
     CHECK_ERROR2_RET(hrc, oCloudClient,
                      ListInstances(CloudMachineState_Running,
-                                   ComSafeArrayAsOutParam(arrayVMNames),
-                                   ComSafeArrayAsOutParam(arrayVMIds)),
-                     RTEXITCODE_FAILURE);
+                                   pVMNamesHolder.asOutParam(),
+                                   pVMIdsHolder.asOutParam(),
+                                   pProgress.asOutParam()),
+                     RTEXITCODE_FAILURE);
+    showProgress(pProgress);
+    CHECK_PROGRESS_ERROR_RET(pProgress, ("Failed to list instances"), RTEXITCODE_FAILURE);
+
+    CHECK_ERROR2_RET(hrc,
+        pVMNamesHolder, COMGETTER(Values)(ComSafeArrayAsOutParam(arrayVMNames)),
+            RTEXITCODE_FAILURE);
+    CHECK_ERROR2_RET(hrc,
+        pVMIdsHolder, COMGETTER(Values)(ComSafeArrayAsOutParam(arrayVMIds)),
+            RTEXITCODE_FAILURE);
+
     RTPrintf("List of available instances for the cloud profile \'%ls\' \nand compartment \'%s\':\n",
              bstrProfileName.raw(), strCompartmentId.c_str());
@@ -148,9 +163,26 @@
         RTPrintf("\t%ls = %ls\n", arrayVMNames[k], value.raw());
     }
+
+    pVMNamesHolder.setNull();
+    pVMIdsHolder.setNull();
+    arrayVMNames.setNull();
+    arrayVMIds.setNull();
+    pProgress.setNull();
     CHECK_ERROR2_RET(hrc, oCloudClient,
                      ListInstances(CloudMachineState_Stopped,
-                                   ComSafeArrayAsOutParam(arrayVMNames),
-                                   ComSafeArrayAsOutParam(arrayVMIds)),
-                     RTEXITCODE_FAILURE);
+                                   pVMNamesHolder.asOutParam(),
+                                   pVMIdsHolder.asOutParam(),
+                                   pProgress.asOutParam()),
+                     RTEXITCODE_FAILURE);
+    showProgress(pProgress);
+    CHECK_PROGRESS_ERROR_RET(pProgress, ("Failed to list instances"), RTEXITCODE_FAILURE);
+
+    CHECK_ERROR2_RET(hrc,
+        pVMNamesHolder, COMGETTER(Values)(ComSafeArrayAsOutParam(arrayVMNames)),
+            RTEXITCODE_FAILURE);
+    CHECK_ERROR2_RET(hrc,
+        pVMIdsHolder, COMGETTER(Values)(ComSafeArrayAsOutParam(arrayVMIds)),
+            RTEXITCODE_FAILURE);
+
     cNames = arrayVMNames.size();
     cIds = arrayVMIds.size();
@@ -243,13 +275,29 @@
                      CreateCloudClient(oCloudClient.asOutParam()),
                      RTEXITCODE_FAILURE);
+
+    ComPtr<IStringArray> pVMNamesHolder;
+    ComPtr<IStringArray> pVMIdsHolder;
     com::SafeArray<BSTR> arrayVMNames;
     com::SafeArray<BSTR> arrayVMIds;
+    ComPtr<IProgress> pProgress;
+
     RTPrintf("Getting a list of available cloud images...\n");
     RTPrintf("Reply is in the form \'image name\' = \'image id\'\n");
     CHECK_ERROR2_RET(hrc, oCloudClient,
                      ListImages(CloudImageState_Available,
-                                ComSafeArrayAsOutParam(arrayVMNames),
-                                ComSafeArrayAsOutParam(arrayVMIds)),
-                     RTEXITCODE_FAILURE);
+                                pVMNamesHolder.asOutParam(),
+                                pVMIdsHolder.asOutParam(),
+                                pProgress.asOutParam()),
+                     RTEXITCODE_FAILURE);
+    showProgress(pProgress);
+    CHECK_PROGRESS_ERROR_RET(pProgress, ("Failed to list images"), RTEXITCODE_FAILURE);
+
+    CHECK_ERROR2_RET(hrc,
+        pVMNamesHolder, COMGETTER(Values)(ComSafeArrayAsOutParam(arrayVMNames)),
+            RTEXITCODE_FAILURE);
+    CHECK_ERROR2_RET(hrc,
+        pVMIdsHolder, COMGETTER(Values)(ComSafeArrayAsOutParam(arrayVMIds)),
+            RTEXITCODE_FAILURE);
+
     RTPrintf("List of available images for the cloud profile \'%ls\' \nand compartment \'%s\':\n",
              bstrProfileName.raw(), strCompartmentId.c_str());
Index: /trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp	(revision 78147)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp	(revision 78148)
@@ -278,4 +278,5 @@
         else
         {
+#if 0
             /* Read Cloud Client instances: */
             QVector<QString> vmNames;
@@ -299,4 +300,7 @@
                 }
             }
+#else  // XXX: uwe
+            msgCenter().cannotAcquireCloudClientParameter(m_comCloudClient);
+#endif
         }
     }
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 78147)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 78148)
@@ -25537,4 +25537,23 @@
 
   <!--
+  // Auxiliary containers
+  //////////////////////////////////////////////////////////////////////////
+  -->
+
+  <interface name="IStringArray" extends="$unknown"
+             uuid="3890b2c8-604d-11e9-92d3-53cb473db9fb"
+             wsmap="managed"
+             reservedMethods="4">
+    <desc>
+      When you need to return an array of strings asynchronously
+      (under a progress) you cannot use by-value out parameter
+      <tt>type=&quot;wstring&quot; safearray=&quot;yes&quot;
+      dir=&quot;out&quot;</tt>, hence this wrapper.
+    </desc>
+    <attribute name="values" type="wstring" safearray="yes" readonly="yes"/>
+  </interface>
+
+
+  <!--
   // IForm
   //////////////////////////////////////////////////////////////////////////
@@ -25684,5 +25703,5 @@
   <interface
     name="ICloudClient" extends="$unknown"
-    uuid="07c04464-981c-4418-8fcf-5ad12aed7c38"
+    uuid="7acc426a-5f8f-11e9-9032-1b0da54759a8"
     wsmap="managed" reservedMethods="13" reservedAttributes="8"
     >
@@ -25736,10 +25755,15 @@
       </desc>
       <param name="machineState" type="CloudMachineState" dir="in"/>
-      <param name="returnNames" type="wstring" safearray="yes" dir="out">
+      <param name="returnNames" type="IStringArray" dir="out">
         <desc>VM names.</desc>
       </param>
-      <param name="returnIds" type="wstring" safearray="yes" dir="return">
+      <param name="returnIds" type="IStringArray" dir="out">
         <desc>VM ids.</desc>
       </param>
+      <param name="progress" type="IProgress" dir="return">
+        <desc>
+          Progress object to track the operation completion.
+        </desc>
+      </param>
     </method>
 
@@ -25749,9 +25773,14 @@
       </desc>
       <param name="imageState" type="CloudImageState" dir="in"/>
-      <param name="returnNames" type="wstring" safearray="yes" dir="out">
+      <param name="returnNames" type="IStringArray" dir="out">
         <desc>Images names.</desc>
       </param>
-      <param name="returnIds" type="wstring" safearray="yes" dir="return">
+      <param name="returnIds" type="IStringArray" dir="out">
         <desc>Images ids.</desc>
+      </param>
+      <param name="progress" type="IProgress" dir="return">
+        <desc>
+          Progress object to track the operation completion.
+        </desc>
       </param>
     </method>
