Index: /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 42530)
+++ /trunk/src/VBox/Main/src-client/GuestSessionImpl.cpp	(revision 42531)
@@ -746,5 +746,5 @@
     uint32_t uVerAdditions = pGuest->getAdditionsVersion();
     mData.mProtocolVersion = (   VBOX_FULL_VERSION_GET_MAJOR(uVerAdditions) >= 4
-                              && VBOX_FULL_VERSION_GET_MINOR(uVerAdditions) >= 2 )
+                              && VBOX_FULL_VERSION_GET_MINOR(uVerAdditions) >= 2)
                            ? 2  /* Guest control 2.0. */
                            : 1; /* Legacy guest control (VBox < 4.2). */
@@ -896,8 +896,32 @@
     LogFlowThisFuncEnter();
 
-    AutoCaller autoCaller(this);
-    if (FAILED(autoCaller.rc())) return autoCaller.rc();
-
-    ReturnComNotImplemented();
+    if (RT_UNLIKELY((aPath) == NULL || *(aPath) == '\0'))
+        return setError(E_INVALIDARG, tr("No directory to check existence for specified"));
+    CheckComArgOutPointerValid(aExists);
+
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    HRESULT hr = S_OK;
+
+    GuestFsObjData objData;
+    int rc = fileQueryInfoInternal(Utf8Str(aPath), objData);
+    if (RT_SUCCESS(rc))
+    {
+        *aExists = objData.mType == FsObjType_Directory;
+    }
+    else
+    {
+        switch (rc)
+        {
+            /** @todo Add more errors here! */
+
+            default:
+               hr = setError(VBOX_E_IPRT_ERROR, tr("Querying directory existence failed: %Rrc"), rc);
+               break;
+        }
+    }
+
+    return hr;
 #endif /* VBOX_WITH_GUEST_CONTROL */
 }
@@ -1122,8 +1146,32 @@
     LogFlowThisFuncEnter();
 
-    AutoCaller autoCaller(this);
-    if (FAILED(autoCaller.rc())) return autoCaller.rc();
-
-    ReturnComNotImplemented();
+    if (RT_UNLIKELY((aPath) == NULL || *(aPath) == '\0'))
+        return setError(E_INVALIDARG, tr("No file to check existence for specified"));
+    CheckComArgOutPointerValid(aExists);
+
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    HRESULT hr = S_OK;
+
+    GuestFsObjData objData;
+    int rc = fileQueryInfoInternal(Utf8Str(aPath), objData);
+    if (RT_SUCCESS(rc))
+    {
+        *aExists = objData.mType == FsObjType_File;
+    }
+    else
+    {
+        switch (rc)
+        {
+            /** @todo Add more errors here! */
+
+            default:
+               hr = setError(VBOX_E_IPRT_ERROR, tr("Querying file existence failed: %Rrc"), rc);
+               break;
+        }
+    }
+
+    return hr;
 #endif /* VBOX_WITH_GUEST_CONTROL */
 }
