Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp	(revision 37566)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp	(revision 37567)
@@ -150,26 +150,25 @@
 
     ComPtr<IMachine> machine;
-    CHECK_ERROR(a->virtualBox, FindMachine(Bstr(VMName).raw(),
-                                           machine.asOutParam()));
-    if (machine)
-    {
-        SafeIfaceArray<IMedium> aMedia;
-        CleanupMode_T cleanupMode = CleanupMode_DetachAllReturnNone;
-        if (fDelete)
-            cleanupMode = CleanupMode_DetachAllReturnHardDisksOnly;
-        CHECK_ERROR(machine, Unregister(cleanupMode,
-                                        ComSafeArrayAsOutParam(aMedia)));
-        if (SUCCEEDED(rc))
-        {
-            if (fDelete)
-            {
-                ComPtr<IProgress> pProgress;
-                CHECK_ERROR(machine, Delete(ComSafeArrayAsInParam(aMedia), pProgress.asOutParam()));
-                if (SUCCEEDED(rc))
-                    CHECK_ERROR(pProgress, WaitForCompletion(-1));
-            }
-        }
-    }
-    return SUCCEEDED(rc) ? 0 : 1;
+    CHECK_ERROR_RET(a->virtualBox, FindMachine(Bstr(VMName).raw(),
+                                               machine.asOutParam()),
+                    RTEXITCODE_FAILURE);
+    SafeIfaceArray<IMedium> aMedia;
+    CHECK_ERROR_RET(machine, Unregister(fDelete ? (CleanupMode_T)CleanupMode_DetachAllReturnHardDisksOnly : (CleanupMode_T)CleanupMode_DetachAllReturnNone,
+                                        ComSafeArrayAsOutParam(aMedia)),
+                    RTEXITCODE_FAILURE);
+    if (fDelete)
+    {
+        ComPtr<IProgress> pProgress;
+        CHECK_ERROR_RET(machine, Delete(ComSafeArrayAsInParam(aMedia), pProgress.asOutParam()),
+                        RTEXITCODE_FAILURE);
+        rc = showProgress(pProgress);
+        if (FAILED(rc))
+        {
+            com::ProgressErrorInfo ErrInfo(pProgress);
+            com::GluePrintErrorInfo(ErrInfo);
+            return RTEXITCODE_FAILURE;
+        }
+    }
+    return RTEXITCODE_SUCCESS;
 }
 
