Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp	(revision 29644)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageGuestCtrl.cpp	(revision 29645)
@@ -442,30 +442,25 @@
 
                 BOOL fCanceled;
-                CHECK_ERROR_RET(progress, COMGETTER(Canceled)(&fCanceled), rc);
-                if (fCanceled)
-                {
-                    RTPrintf("Process execution canceled!\n");
-                }
-                else
-                {
-                    if (fCompleted)
-                    {
-                        LONG iRc = false;
-                        CHECK_ERROR_RET(progress, COMGETTER(ResultCode)(&iRc), rc);
-                        if (FAILED(iRc))
-                        {
-                            ComPtr<IVirtualBoxErrorInfo> execError;
-                            rc = progress->COMGETTER(ErrorInfo)(execError.asOutParam());
-                            com::ErrorInfo info (execError);
-                            RTPrintf("\n\nProcess error details:\n");
-                            GluePrintErrorInfo(info);
-                            RTPrintf("\n");
-                        }
-                        if (fVerbose)
-                        {
-                            ULONG uRetStatus, uRetExitCode, uRetFlags;
-                            CHECK_ERROR_BREAK(guest, GetProcessStatus(uPID, &uRetExitCode, &uRetFlags, &uRetStatus));
-                            RTPrintf("Exit code=%u (Status=%u [%s], Flags=%u)\n", uRetExitCode, uRetStatus, getStatus(uRetStatus), uRetFlags);
-                        }
+                if (SUCCEEDED(progress->COMGETTER(Canceled)(&fCanceled)) && fCanceled)
+                    if (fVerbose) RTPrintf("Process execution canceled!\n");
+
+                if (fCompleted)
+                {
+                    LONG iRc = false;
+                    CHECK_ERROR_RET(progress, COMGETTER(ResultCode)(&iRc), rc);
+                    if (FAILED(iRc))
+                    {
+                        ComPtr<IVirtualBoxErrorInfo> execError;
+                        rc = progress->COMGETTER(ErrorInfo)(execError.asOutParam());
+                        com::ErrorInfo info (execError);
+                        RTPrintf("\n\nProcess error details:\n");
+                        GluePrintErrorInfo(info);
+                        RTPrintf("\n");
+                    }
+                    if (fVerbose)
+                    {
+                        ULONG uRetStatus, uRetExitCode, uRetFlags;
+                        CHECK_ERROR_BREAK(guest, GetProcessStatus(uPID, &uRetExitCode, &uRetFlags, &uRetStatus));
+                        RTPrintf("Exit code=%u (Status=%u [%s], Flags=%u)\n", uRetExitCode, uRetStatus, getStatus(uRetStatus), uRetFlags);
                     }
                 }
Index: /trunk/src/VBox/Main/GuestImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/GuestImpl.cpp	(revision 29644)
+++ /trunk/src/VBox/Main/GuestImpl.cpp	(revision 29645)
@@ -707,17 +707,17 @@
         it->pvData = NULL;
         it->cbData = 0;
-
-        /* Notify outstanding waits for progress ... */
-        if (!it->pProgress.isNull())
-        {
-            /* Only cancel if not canceled before! */
-            BOOL fCancelled;
-            if (SUCCEEDED(it->pProgress->COMGETTER(Canceled)(&fCancelled)) && !fCancelled)
-                it->pProgress->Cancel();
-            /* 
-             * Do *not NULL pProgress here, because waiting function like executeProcess() 
-             * will still rely on this object for checking whether they have to give up! 
-             */
-        }
+    }
+
+    /* Notify outstanding waits for progress ... */
+    if (it->pProgress && !it->pProgress.isNull())
+    {
+        /* Only cancel if not canceled before! */
+        BOOL fCancelled;
+        if (SUCCEEDED(it->pProgress->COMGETTER(Canceled)(&fCancelled)) && !fCancelled)
+            it->pProgress->Cancel();
+        /* 
+         * Do *not NULL pProgress here, because waiting function like executeProcess() 
+         * will still rely on this object for checking whether they have to give up! 
+         */
     }
     LogFlowFuncLeave();
