Index: /trunk/src/VBox/Main/src-server/ApplianceImplImport.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/ApplianceImplImport.cpp	(revision 49584)
+++ /trunk/src/VBox/Main/src-server/ApplianceImplImport.cpp	(revision 49585)
@@ -2962,10 +2962,15 @@
             stack.fSessionOpen = false;
         }
-        catch(HRESULT /* aRC */)
+        catch(HRESULT aRC)
         {
+            com::ErrorInfo info(this, COM_IIDOF(IAppliance));
+
             if (stack.fSessionOpen)
                 stack.pSession->UnlockMachine();
 
-            throw;
+            if (info.isFullAvailable())
+                throw setError(aRC, Utf8Str(info.getText()).c_str());
+            else
+                throw setError(aRC, "Unknown error during OVF import");
         }
     }
@@ -3083,11 +3088,9 @@
                                 }
                                 if (itDiskImage == stack.mapDisks.end())
-                                {
                                     throw setError(E_FAIL,
                                                    tr("Internal inconsistency looking up disk image '%s'. "
                                                       "Check compliance OVA package structure and file names "
-                                                      "references in the section <References> in the OVF file."),
+                                                      "references in the section <References> in the OVF file"),
                                                    availableImage.c_str());
-                                }
 
                                 /* replace with a new found disk image */
@@ -3113,5 +3116,4 @@
                                 }
                                 if (!vsdeTargetHD)
-                                {
                                     /*
                                      * in this case it's an error because something wrong with OVF description file.
@@ -3121,5 +3123,4 @@
                                                    tr("Internal inconsistency looking up disk image '%s'"),
                                                    diCurrent.strHref.c_str());
-                                }
 
                                 itVDisk = vsysThis.mapVirtualDisks.find(diCurrent.strDiskId);
@@ -3166,5 +3167,6 @@
                 ComPtr<IMachine> sMachine;
                 rc = stack.pSession->COMGETTER(Machine)(sMachine.asOutParam());
-                if (FAILED(rc)) throw rc;
+                if (FAILED(rc))
+                    throw rc;
 
                 // find the hard disk controller to which we should attach
@@ -3196,5 +3198,6 @@
                                                  dvdImage.asOutParam());
 
-                    if (FAILED(rc)) throw rc;
+                    if (FAILED(rc))
+                        throw rc;
 
                     rc = sMachine->AttachDevice(mhda.controllerType.raw(),// wstring name
@@ -3203,5 +3206,6 @@
                                                 DeviceType_DVD,           // DeviceType_T type
                                                 dvdImage);
-                    if (FAILED(rc)) throw rc;
+                    if (FAILED(rc))
+                        throw rc;
                 }
                 else
@@ -3213,5 +3217,6 @@
                                                 pTargetHD);
 
-                    if (FAILED(rc)) throw rc;
+                    if (FAILED(rc))
+                        throw rc;
                 }
 
@@ -3219,5 +3224,6 @@
 
                 rc = sMachine->SaveSettings();
-                if (FAILED(rc)) throw rc;
+                if (FAILED(rc))
+                    throw rc;
 
                 /* restore */
@@ -3239,13 +3245,21 @@
             // only now that we're done with all disks, close the session
             rc = stack.pSession->UnlockMachine();
-            if (FAILED(rc)) throw rc;
+
+            if (FAILED(rc))
+                throw rc;
+
             stack.fSessionOpen = false;
         }
-        catch(HRESULT /* aRC */)
+        catch(HRESULT  aRC)
         {
+            com::ErrorInfo info(this, COM_IIDOF(IAppliance));
+
             if (stack.fSessionOpen)
                 stack.pSession->UnlockMachine();
 
-            throw;
+            if (info.isFullAvailable())
+                throw setError(aRC, Utf8Str(info.getText()).c_str());
+            else
+                throw setError(aRC, "Unknown error during OVF import");
         }
     }
