Index: /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 71541)
+++ /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 71542)
@@ -2523,8 +2523,11 @@
     if (FAILED(autoCaller.rc())) return autoCaller.rc();
 
+    HRESULT hr = i_isReadyExternal();
+    if (FAILED(hr))
+        return hr;
+
     /* Close session on guest. */
     int rcGuest = VINF_SUCCESS;
-    int rc = i_closeSession(0 /* Flags */, 30 * 1000 /* Timeout */,
-                            &rcGuest);
+    int rc = i_closeSession(0 /* Flags */, 30 * 1000 /* Timeout */, &rcGuest);
     /* On failure don't return here, instead do all the cleanup
      * work first and then return an error. */
@@ -2580,7 +2583,9 @@
         return setError(E_NOTIMPL, tr("Flag(s) not yet implemented"));
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    HRESULT hr = S_OK;
 
     try
@@ -2594,43 +2599,43 @@
         catch(...)
         {
-            hr = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyFileFrom object"));
+            hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyFileFrom object"));
             throw;
         }
 
 
-        hr = pTask->Init(Utf8StrFmt(tr("Copying \"%s\" from guest to \"%s\" on the host"), aSource.c_str(), aDest.c_str()));
-        if (FAILED(hr))
+        hrc = pTask->Init(Utf8StrFmt(tr("Copying \"%s\" from guest to \"%s\" on the host"), aSource.c_str(), aDest.c_str()));
+        if (FAILED(hrc))
         {
             delete pTask;
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Creating progress object for SessionTaskCopyFileFrom object failed"));
-            throw hr;
-        }
-
-        hr = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
-
-        if (SUCCEEDED(hr))
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Creating progress object for SessionTaskCopyFileFrom object failed"));
+            throw hrc;
+        }
+
+        hrc = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
+
+        if (SUCCEEDED(hrc))
         {
             /* Return progress to the caller. */
             pProgress = pTask->GetProgressObject();
-            hr = pProgress.queryInterfaceTo(aProgress.asOutParam());
+            hrc = pProgress.queryInterfaceTo(aProgress.asOutParam());
         }
         else
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Starting thread for copying file \"%s\" from guest to \"%s\" on the host failed "),
-                          aSource.c_str(), aDest.c_str());
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Starting thread for copying file \"%s\" from guest to \"%s\" on the host failed "),
+                           aSource.c_str(), aDest.c_str());
 
     }
     catch(std::bad_alloc &)
     {
-        hr = E_OUTOFMEMORY;
+        hrc = E_OUTOFMEMORY;
     }
     catch(HRESULT eHR)
     {
-        hr = eHR;
+        hrc = eHR;
         LogFlowThisFunc(("Exception was caught in the function \n"));
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -2655,7 +2660,9 @@
         return setError(E_NOTIMPL, tr("Flag(s) not yet implemented"));
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    HRESULT hr = S_OK;
 
     try
@@ -2669,41 +2676,41 @@
         catch(...)
         {
-            hr = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyFileTo object"));
+            hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyFileTo object"));
             throw;
         }
 
-        hr = pTask->Init(Utf8StrFmt(tr("Copying \"%s\" from host to \"%s\" on the guest"), aSource.c_str(), aDest.c_str()));
-        if (FAILED(hr))
+        hrc = pTask->Init(Utf8StrFmt(tr("Copying \"%s\" from host to \"%s\" on the guest"), aSource.c_str(), aDest.c_str()));
+        if (FAILED(hrc))
         {
             delete pTask;
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Creating progress object for SessionTaskCopyFileTo object failed"));
-            throw hr;
-        }
-
-        hr = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
-
-        if (SUCCEEDED(hr))
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Creating progress object for SessionTaskCopyFileTo object failed"));
+            throw hrc;
+        }
+
+        hrc = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
+
+        if (SUCCEEDED(hrc))
         {
             /* Return progress to the caller. */
             pProgress = pTask->GetProgressObject();
-            hr = pProgress.queryInterfaceTo(aProgress.asOutParam());
+            hrc = pProgress.queryInterfaceTo(aProgress.asOutParam());
         }
         else
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Starting thread for copying file \"%s\" from host to \"%s\" on the guest failed "),
-                          aSource.c_str(), aDest.c_str());
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Starting thread for copying file \"%s\" from host to \"%s\" on the guest failed "),
+                           aSource.c_str(), aDest.c_str());
     }
     catch(std::bad_alloc &)
     {
-        hr = E_OUTOFMEMORY;
+        hrc = E_OUTOFMEMORY;
     }
     catch(HRESULT eHR)
     {
-        hr = eHR;
+        hrc = eHR;
         LogFlowThisFunc(("Exception was caught in the function \n"));
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -2739,7 +2746,9 @@
     }
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    HRESULT hr = S_OK;
 
     try
@@ -2754,42 +2763,42 @@
         catch(...)
         {
-            hr = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyDirFrom object"));
+            hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyDirFrom object"));
             throw;
         }
 
-        hr = pTask->Init(Utf8StrFmt(tr("Copying directory \"%s\" from guest to \"%s\" on the host"),
-                                    aSource.c_str(), aDestination.c_str()));
-        if (FAILED(hr))
+        hrc = pTask->Init(Utf8StrFmt(tr("Copying directory \"%s\" from guest to \"%s\" on the host"),
+                                     aSource.c_str(), aDestination.c_str()));
+        if (FAILED(hrc))
         {
             delete pTask;
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Creating progress object for SessionTaskCopyDirFrom object failed"));
-            throw hr;
-        }
-
-        hr = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
-
-        if (SUCCEEDED(hr))
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Creating progress object for SessionTaskCopyDirFrom object failed"));
+            throw hrc;
+        }
+
+        hrc = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
+
+        if (SUCCEEDED(hrc))
         {
             /* Return progress to the caller. */
             pProgress = pTask->GetProgressObject();
-            hr = pProgress.queryInterfaceTo(aProgress.asOutParam());
+            hrc = pProgress.queryInterfaceTo(aProgress.asOutParam());
         }
         else
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Starting thread for copying directory \"%s\" from guest to \"%s\" on the host failed"),
-                          aSource.c_str(), aDestination.c_str());
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Starting thread for copying directory \"%s\" from guest to \"%s\" on the host failed"),
+                           aSource.c_str(), aDestination.c_str());
     }
     catch(std::bad_alloc &)
     {
-        hr = E_OUTOFMEMORY;
+        hrc = E_OUTOFMEMORY;
     }
     catch(HRESULT eHR)
     {
-        hr = eHR;
+        hrc = eHR;
         LogFlowThisFunc(("Exception was caught in the function\n"));
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -2821,7 +2830,9 @@
     }
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
-
-    HRESULT hr = S_OK;
 
     try
@@ -2836,42 +2847,42 @@
         catch(...)
         {
-            hr = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyDirTo object"));
+            hrc = setError(VBOX_E_IPRT_ERROR, tr("Failed to create SessionTaskCopyDirTo object"));
             throw;
         }
 
-        hr = pTask->Init(Utf8StrFmt(tr("Copying directory \"%s\" from host to \"%s\" on the guest"),
-                                    aSource.c_str(), aDestination.c_str()));
-        if (FAILED(hr))
+        hrc = pTask->Init(Utf8StrFmt(tr("Copying directory \"%s\" from host to \"%s\" on the guest"),
+                                     aSource.c_str(), aDestination.c_str()));
+        if (FAILED(hrc))
         {
             delete pTask;
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Creating progress object for SessionTaskCopyDirTo object failed"));
-            throw hr;
-        }
-
-        hr = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
-
-        if (SUCCEEDED(hr))
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Creating progress object for SessionTaskCopyDirTo object failed"));
+            throw hrc;
+        }
+
+        hrc = pTask->createThreadWithType(RTTHREADTYPE_MAIN_HEAVY_WORKER);
+
+        if (SUCCEEDED(hrc))
         {
             /* Return progress to the caller. */
             pProgress = pTask->GetProgressObject();
-            hr = pProgress.queryInterfaceTo(aProgress.asOutParam());
+            hrc = pProgress.queryInterfaceTo(aProgress.asOutParam());
         }
         else
-            hr = setError(VBOX_E_IPRT_ERROR,
-                          tr("Starting thread for copying directory \"%s\" from host to \"%s\" on the guest failed"),
-                          aSource.c_str(), aDestination.c_str());
+            hrc = setError(VBOX_E_IPRT_ERROR,
+                           tr("Starting thread for copying directory \"%s\" from host to \"%s\" on the guest failed"),
+                           aSource.c_str(), aDestination.c_str());
     }
     catch(std::bad_alloc &)
     {
-        hr = E_OUTOFMEMORY;
+        hrc = E_OUTOFMEMORY;
     }
     catch(HRESULT eHR)
     {
-        hr = eHR;
+        hrc = eHR;
         LogFlowThisFunc(("Exception was caught in the function\n"));
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -2895,5 +2906,7 @@
     }
 
-    HRESULT hr = S_OK;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     ComObjPtr <GuestDirectory> pDirectory; int rcGuest;
@@ -2903,6 +2916,6 @@
         if (GuestProcess::i_isGuestError(rc))
         {
-            hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: %s"),
-                                                GuestDirectory::i_guestErrorToString(rcGuest).c_str());
+            hrc = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: %s"),
+                                                 GuestDirectory::i_guestErrorToString(rcGuest).c_str());
         }
         else
@@ -2911,13 +2924,13 @@
             {
                 case VERR_INVALID_PARAMETER:
-                    hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Invalid parameters given"));
+                    hrc = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Invalid parameters given"));
                     break;
 
                 case VERR_BROKEN_PIPE:
-                    hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Unexpectedly aborted"));
+                    hrc = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: Unexpectedly aborted"));
                     break;
 
                 default:
-                    hr = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: %Rrc"), rc);
+                    hrc = setError(VBOX_E_IPRT_ERROR, tr("Directory creation failed: %Rrc"), rc);
                     break;
             }
@@ -2925,5 +2938,5 @@
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -2939,5 +2952,7 @@
         return setError(E_INVALIDARG, tr("No directory name specified"));
 
-    HRESULT hr = S_OK;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     int rcGuest;
@@ -2948,15 +2963,15 @@
         {
             case VERR_GSTCTL_GUEST_ERROR:
-                hr = GuestProcess::i_setErrorExternal(this, rcGuest);
+                hrc = GuestProcess::i_setErrorExternal(this, rcGuest);
                 break;
 
             default:
-               hr = setError(VBOX_E_IPRT_ERROR, tr("Temporary directory creation \"%s\" with template \"%s\" failed: %Rrc"),
-                             aPath.c_str(), aTemplateName.c_str(), rc);
+               hrc = setError(VBOX_E_IPRT_ERROR, tr("Temporary directory creation \"%s\" with template \"%s\" failed: %Rrc"),
+                              aPath.c_str(), aTemplateName.c_str(), rc);
                break;
         }
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -2968,5 +2983,7 @@
         return setError(E_INVALIDARG, tr("No directory to check existence for specified"));
 
-    HRESULT hr = S_OK;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     GuestFsObjData objData; int rcGuest;
@@ -2986,6 +3003,6 @@
                         break;
                     default:
-                        hr = setError(VBOX_E_IPRT_ERROR, tr("Querying directory existence \"%s\" failed: %s"),
-                                      aPath.c_str(), GuestProcess::i_guestErrorToString(rcGuest).c_str());
+                        hrc = setError(VBOX_E_IPRT_ERROR, tr("Querying directory existence \"%s\" failed: %s"),
+                                                             aPath.c_str(), GuestProcess::i_guestErrorToString(rcGuest).c_str());
                         break;
                 }
@@ -2994,11 +3011,11 @@
 
             default:
-               hr = setError(VBOX_E_IPRT_ERROR, tr("Querying directory existence \"%s\" failed: %Rrc"),
-                             aPath.c_str(), rc);
+               hrc = setError(VBOX_E_IPRT_ERROR, tr("Querying directory existence \"%s\" failed: %Rrc"),
+                                                    aPath.c_str(), rc);
                break;
         }
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -3023,5 +3040,7 @@
     }
 
-    HRESULT hr = S_OK;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     GuestDirectoryOpenInfo openInfo;
@@ -3035,5 +3054,5 @@
     {
         /* Return directory object to the caller. */
-        hr = pDirectory.queryInterfaceTo(aDirectory.asOutParam());
+        hrc = pDirectory.queryInterfaceTo(aDirectory.asOutParam());
     }
     else
@@ -3042,20 +3061,20 @@
         {
             case VERR_INVALID_PARAMETER:
-               hr = setError(VBOX_E_IPRT_ERROR, tr("Opening directory \"%s\" failed; invalid parameters given"),
-                                                   aPath.c_str());
+               hrc = setError(VBOX_E_IPRT_ERROR, tr("Opening directory \"%s\" failed; invalid parameters given"),
+                                                    aPath.c_str());
                break;
 
             case VERR_GSTCTL_GUEST_ERROR:
-                hr = GuestDirectory::i_setErrorExternal(this, rcGuest);
+                hrc = GuestDirectory::i_setErrorExternal(this, rcGuest);
                 break;
 
             default:
-               hr = setError(VBOX_E_IPRT_ERROR, tr("Opening directory \"%s\" failed: %Rrc"),
-                             aPath.c_str(),rc);
+               hrc = setError(VBOX_E_IPRT_ERROR, tr("Opening directory \"%s\" failed: %Rrc"),
+                                                    aPath.c_str(),rc);
                break;
         }
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -3067,7 +3086,7 @@
         return setError(E_INVALIDARG, tr("No directory to remove specified"));
 
-    HRESULT hr = i_isReadyExternal();
-    if (FAILED(hr))
-        return hr;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     /* No flags; only remove the directory when empty. */
@@ -3081,20 +3100,20 @@
         {
             case VERR_NOT_SUPPORTED:
-                hr = setError(VBOX_E_IPRT_ERROR,
-                              tr("Handling removing guest directories not supported by installed Guest Additions"));
+                hrc = setError(VBOX_E_IPRT_ERROR,
+                               tr("Handling removing guest directories not supported by installed Guest Additions"));
                 break;
 
             case VERR_GSTCTL_GUEST_ERROR:
-                hr = GuestDirectory::i_setErrorExternal(this, rcGuest);
+                hrc = GuestDirectory::i_setErrorExternal(this, rcGuest);
                 break;
 
             default:
-                hr = setError(VBOX_E_IPRT_ERROR, tr("Removing guest directory \"%s\" failed: %Rrc"),
-                              aPath.c_str(), vrc);
+                hrc = setError(VBOX_E_IPRT_ERROR, tr("Removing guest directory \"%s\" failed: %Rrc"),
+                                                     aPath.c_str(), vrc);
                 break;
         }
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -3111,16 +3130,16 @@
  *        further down!! */
 
-    HRESULT hr = i_isReadyExternal();
-    if (FAILED(hr))
-        return hr;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     ComObjPtr<Progress> pProgress;
-    hr = pProgress.createObject();
-    if (SUCCEEDED(hr))
-        hr = pProgress->init(static_cast<IGuestSession *>(this),
-                             Bstr(tr("Removing guest directory")).raw(),
-                             TRUE /*aCancelable*/);
-    if (FAILED(hr))
-        return hr;
+    hrc = pProgress.createObject();
+    if (SUCCEEDED(hrc))
+        hrc = pProgress->init(static_cast<IGuestSession *>(this),
+                              Bstr(tr("Removing guest directory")).raw(),
+                              TRUE /*aCancelable*/);
+    if (FAILED(hrc))
+        return hrc;
 
     /* Note: At the moment we don't supply progress information while
@@ -3128,7 +3147,7 @@
      *       the progress object right now. */
      /** @todo Implement progress reporting on guest directory deletion! */
-    hr = pProgress->i_notifyComplete(S_OK);
-    if (FAILED(hr))
-        return hr;
+    hrc = pProgress->i_notifyComplete(S_OK);
+    if (FAILED(hrc))
+        return hrc;
 
     /* Remove the directory + all its contents. */
@@ -3142,15 +3161,15 @@
         {
             case VERR_NOT_SUPPORTED:
-                hr = setError(VBOX_E_IPRT_ERROR,
+                hrc = setError(VBOX_E_IPRT_ERROR,
                               tr("Handling removing guest directories recursively not supported by installed Guest Additions"));
                 break;
 
             case VERR_GSTCTL_GUEST_ERROR:
-                hr = GuestFile::i_setErrorExternal(this, rcGuest);
+                hrc = GuestFile::i_setErrorExternal(this, rcGuest);
                 break;
 
             default:
-                hr = setError(VBOX_E_IPRT_ERROR, tr("Recursively removing guest directory \"%s\" failed: %Rrc"),
-                              aPath.c_str(), vrc);
+                hrc = setError(VBOX_E_IPRT_ERROR, tr("Recursively removing guest directory \"%s\" failed: %Rrc"),
+                                                     aPath.c_str(), vrc);
                 break;
         }
@@ -3161,5 +3180,5 @@
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -3294,4 +3313,8 @@
     }
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     GuestFsObjData objData; int rcGuest;
     int vrc = i_fileQueryInfo(aPath, aFollowSymlinks != FALSE, objData, &rcGuest);
@@ -3302,10 +3325,8 @@
     }
 
-    HRESULT hr = S_OK;
-
     switch (vrc)
     {
         case VERR_GSTCTL_GUEST_ERROR:
-            hr = GuestProcess::i_setErrorExternal(this, rcGuest);
+            hrc = GuestProcess::i_setErrorExternal(this, rcGuest);
             break;
 
@@ -3317,10 +3338,10 @@
 
         default:
-            hr = setError(VBOX_E_IPRT_ERROR, tr("Querying file information for \"%s\" failed: %Rrc"),
-                          aPath.c_str(), vrc);
+            hrc = setError(VBOX_E_IPRT_ERROR, tr("Querying file information for \"%s\" failed: %Rrc"),
+                                                 aPath.c_str(), vrc);
             break;
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -3342,7 +3363,7 @@
         return setError(E_INVALIDARG, tr("No file to open specified"));
 
-    HRESULT hr = i_isReadyExternal();
-    if (FAILED(hr))
-        return hr;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     GuestFileOpenInfo openInfo;
@@ -3411,5 +3432,5 @@
     if (RT_SUCCESS(vrc))
         /* Return directory object to the caller. */
-        hr = pFile.queryInterfaceTo(aFile.asOutParam());
+        hrc = pFile.queryInterfaceTo(aFile.asOutParam());
     else
     {
@@ -3417,14 +3438,14 @@
         {
             case VERR_NOT_SUPPORTED:
-                hr = setError(VBOX_E_IPRT_ERROR,
+                hrc = setError(VBOX_E_IPRT_ERROR,
                               tr("Handling guest files not supported by installed Guest Additions"));
                 break;
 
             case VERR_GSTCTL_GUEST_ERROR:
-                hr = GuestFile::i_setErrorExternal(this, rcGuest);
+                hrc = GuestFile::i_setErrorExternal(this, rcGuest);
                 break;
 
             default:
-                hr = setError(VBOX_E_IPRT_ERROR, tr("Opening guest file \"%s\" failed: %Rrc"),
+                hrc = setError(VBOX_E_IPRT_ERROR, tr("Opening guest file \"%s\" failed: %Rrc"),
                               aPath.c_str(), vrc);
                 break;
@@ -3432,5 +3453,5 @@
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -3440,5 +3461,7 @@
         return setError(E_INVALIDARG, tr("No path specified"));
 
-    HRESULT hr = S_OK;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     int64_t llSize; int rcGuest;
@@ -3452,11 +3475,11 @@
         if (GuestProcess::i_isGuestError(vrc))
         {
-            hr = GuestProcess::i_setErrorExternal(this, rcGuest);
+            hrc = GuestProcess::i_setErrorExternal(this, rcGuest);
         }
         else
-            hr = setError(VBOX_E_IPRT_ERROR, tr("Querying file size failed: %Rrc"), vrc);
-    }
-
-    return hr;
+            hrc = setError(VBOX_E_IPRT_ERROR, tr("Querying file size failed: %Rrc"), vrc);
+    }
+
+    return hrc;
 }
 
@@ -3466,7 +3489,9 @@
         return setError(E_INVALIDARG, tr("No path specified"));
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     LogFlowThisFunc(("aPath=%s, aFollowSymlinks=%RTbool\n", aPath.c_str(), RT_BOOL(aFollowSymlinks)));
-
-    HRESULT hrc = S_OK;
 
     *aExists = false;
@@ -3505,7 +3530,9 @@
         return setError(E_INVALIDARG, tr("No path specified"));
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     LogFlowThisFunc(("aPath=%s, aFollowSymlinks=%RTbool\n", aPath.c_str(), RT_BOOL(aFollowSymlinks)));
-
-    HRESULT hrc = S_OK;
 
     GuestFsObjData Info; int rcGuest;
@@ -3542,7 +3569,9 @@
         return setError(E_INVALIDARG, tr("No path specified"));
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     LogFlowThisFunc(("aPath=%s\n", aPath.c_str()));
-
-    HRESULT hrc = S_OK;
 
     int rcGuest;
@@ -3573,7 +3602,7 @@
     LogFlowThisFunc(("aSource=%s, aDestination=%s\n", aSource.c_str(), aDestination.c_str()));
 
-    HRESULT hr = i_isReadyExternal();
-    if (FAILED(hr))
-        return hr;
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     /* Combine, validate and convert flags. */
@@ -3600,21 +3629,21 @@
         {
             case VERR_NOT_SUPPORTED:
-                hr = setError(VBOX_E_IPRT_ERROR,
+                hrc = setError(VBOX_E_IPRT_ERROR,
                               tr("Handling renaming guest directories not supported by installed Guest Additions"));
                 break;
 
             case VERR_GSTCTL_GUEST_ERROR:
-                hr = setError(VBOX_E_IPRT_ERROR,
+                hrc = setError(VBOX_E_IPRT_ERROR,
                               tr("Renaming guest directory failed: %Rrc"), rcGuest);
                 break;
 
             default:
-                hr = setError(VBOX_E_IPRT_ERROR, tr("Renaming guest directory \"%s\" failed: %Rrc"),
-                              aSource.c_str(), vrc);
+                hrc = setError(VBOX_E_IPRT_ERROR, tr("Renaming guest directory \"%s\" failed: %Rrc"),
+                                                     aSource.c_str(), vrc);
                 break;
         }
     }
 
-    return hr;
+    return hrc;
 }
 
@@ -3802,9 +3831,11 @@
     LogFlowThisFuncEnter();
 
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
+
     /*
      * Note: Do not hold any locks here while waiting!
      */
-    HRESULT hr = S_OK;
-
     int rcGuest; GuestSessionWaitResult_T waitResult;
     int vrc = i_waitFor(aWaitFor, aTimeoutMS, waitResult, &rcGuest);
@@ -3816,5 +3847,5 @@
         {
             case VERR_GSTCTL_GUEST_ERROR:
-                hr = GuestSession::i_setErrorExternal(this, rcGuest);
+                hrc = GuestSession::i_setErrorExternal(this, rcGuest);
                 break;
 
@@ -3826,7 +3857,7 @@
             {
                 const char *pszSessionName = mData.mSession.mName.c_str();
-                hr = setError(VBOX_E_IPRT_ERROR,
-                              tr("Waiting for guest session \"%s\" failed: %Rrc"),
-                                 pszSessionName ? pszSessionName : tr("Unnamed"), vrc);
+                hrc = setError(VBOX_E_IPRT_ERROR,
+                               tr("Waiting for guest session \"%s\" failed: %Rrc"),
+                                  pszSessionName ? pszSessionName : tr("Unnamed"), vrc);
                 break;
             }
@@ -3835,5 +3866,5 @@
 
     LogFlowFuncLeaveRC(vrc);
-    return hr;
+    return hrc;
 }
 
@@ -3842,4 +3873,8 @@
 {
     LogFlowThisFuncEnter();
+
+    HRESULT hrc = i_isReadyExternal();
+    if (FAILED(hrc))
+        return hrc;
 
     /*
