Index: /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlProcess.cpp
===================================================================
--- /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlProcess.cpp	(revision 83608)
+++ /trunk/src/VBox/Additions/common/VBoxService/VBoxServiceControlProcess.cpp	(revision 83609)
@@ -1366,5 +1366,5 @@
         AssertPtrReturn(pcszArgv0, VERR_INVALID_POINTER); /* Paranoia. */
 
-        const uint32_t uArgvIdx = (papszArgs[0] && papszArgs[1]) ? 1 : 0;
+        const uint32_t uArgvIdx = pcszArgv0 == papszArgs[0] ? 1 : 0;
 
         VGSvcVerbose(3, "vgsvcGstCtrlProcessCreateProcess: fHasArgv0=%RTbool, pcszArgv0=%p, uArgvIdx=%RU32, "
@@ -1538,7 +1538,11 @@
                                 RTGETOPTARGV_CNV_QUOTE_BOURNE_SH, NULL);
 
+    VGSvcVerbose(3, "vgsvcGstCtrlProcessProcessWorker: cArgs = %d\n", cArgs);
 #ifdef VBOX_STRICT
+    for (int i = 0; i < cArgs; i++)
+        VGSvcVerbose(3, "vgsvcGstCtrlProcessProcessWorker: papszArgs[%d] = '%s'\n", i, papszArgs[i] ? papszArgs[i] : "<NULL>");
+
     const bool fHasArgv0    = RT_BOOL(g_fControlHostFeatures0 & VBOX_GUESTCTRL_HF_0_PROCESS_ARGV0); RT_NOREF(fHasArgv0);
-    const int  cArgsToCheck = cArgs; /** @ŧodo Do we still need to do this?    + (fHasArgv0 ? 0 : 1); */
+    const int  cArgsToCheck = cArgs + (fHasArgv0 ? 0 : 1);
 
     /* Did we get the same result?
