Index: /trunk/src/VBox/Main/VBoxExtPackHelperApp.cpp
===================================================================
--- /trunk/src/VBox/Main/VBoxExtPackHelperApp.cpp	(revision 35226)
+++ /trunk/src/VBox/Main/VBoxExtPackHelperApp.cpp	(revision 35227)
@@ -1316,4 +1316,13 @@
 
 #else
+
+    /*
+     * Several of the alternatives below will require a command line.
+     */
+    char *pszCmdLine;
+    int rc = RTGetOptArgvToString(&pszCmdLine, &papszArgs[cSuArgs], RTGETOPTARGV_CNV_QUOTE_BOURNE_SH);
+    if (RT_FAILURE(rc))
+        return RTMsgErrorExit(RTEXITCODE_FAILURE, "RTGetOptArgvToString failed: %Rrc");
+
     /*
      * Look for various standard stuff for executing a program as root.
@@ -1326,10 +1335,8 @@
     bool        fHaveDisplayVar = RTEnvExist("DISPLAY");
     int         iSuArg          = cSuArgs;
-    char       *pszCmdLine      = NULL;
     PRTHANDLE   pStdNull        = NULL;
     RTHANDLE    StdNull;
     char        szExecTool[260];
     char        szXterm[260];
-    int         rc;
 
     /*
@@ -1372,4 +1379,5 @@
             pStdNull = &StdNull;
 
+#if 0 /* older gksu does not grok --description nor '--' and multiple args. */
             iSuArg = cSuArgs - 4;
             papszArgs[cSuArgs - 4] = szExecTool;
@@ -1381,4 +1389,10 @@
                                    : "VirtualBox extension pack maintainer";
             papszArgs[cSuArgs - 1] = "--";
+#else
+            iSuArg = cSuArgs - 2;
+            papszArgs[cSuArgs - 2] = szExecTool;
+            papszArgs[cSuArgs - 1] = pszCmdLine;
+            papszArgs[cSuArgs] = NULL;
+#endif
         }
         else
@@ -1403,25 +1417,19 @@
              && FindExecTool(szXterm, sizeof(szXterm), "xterm"))
     {
-        rc = RTGetOptArgvToString(&pszCmdLine, &papszArgs[cSuArgs], RTGETOPTARGV_CNV_QUOTE_BOURNE_SH);
-        if (RT_SUCCESS(rc))
-        {
-            iSuArg = cSuArgs - 9;
-            papszArgs[cSuArgs - 9] = szXterm;
-            papszArgs[cSuArgs - 8] = "-T";
-            papszArgs[cSuArgs - 7] = iCmd == CMD_INSTALL
-                                   ? "VirtualBox extension pack installer - su"
-                                   : iCmd == CMD_UNINSTALL
-                                   ? "VirtualBox extension pack uninstaller - su"
-                                   : "VirtualBox extension pack maintainer - su";
-            papszArgs[cSuArgs - 6] = "-e";
-            papszArgs[cSuArgs - 5] = szExecTool;
-            papszArgs[cSuArgs - 4] = "-";
-            papszArgs[cSuArgs - 3] = "root";
-            papszArgs[cSuArgs - 2] = "-c";
-            papszArgs[cSuArgs - 1] = pszCmdLine;
-            papszArgs[cSuArgs] = NULL;
-        }
-        else
-            RTMsgError("RTGetOptArgvToString failed: %Rrc");
+        iSuArg = cSuArgs - 9;
+        papszArgs[cSuArgs - 9] = szXterm;
+        papszArgs[cSuArgs - 8] = "-T";
+        papszArgs[cSuArgs - 7] = iCmd == CMD_INSTALL
+                               ? "VirtualBox extension pack installer - su"
+                               : iCmd == CMD_UNINSTALL
+                               ? "VirtualBox extension pack uninstaller - su"
+                               : "VirtualBox extension pack maintainer - su";
+        papszArgs[cSuArgs - 6] = "-e";
+        papszArgs[cSuArgs - 5] = szExecTool;
+        papszArgs[cSuArgs - 4] = "-";
+        papszArgs[cSuArgs - 3] = "root";
+        papszArgs[cSuArgs - 2] = "-c";
+        papszArgs[cSuArgs - 1] = pszCmdLine;
+        papszArgs[cSuArgs] = NULL;
     }
     else if (fHaveDisplayVar)
