Index: /trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
===================================================================
--- /trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp	(revision 84635)
+++ /trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp	(revision 84636)
@@ -56,4 +56,5 @@
 #include <iprt/err.h>
 #include <iprt/file.h>
+#include <iprt/path.h>
 #include <iprt/string.h>
 #include <iprt/thread.h>
@@ -65,5 +66,4 @@
 #define MILLIS_PER_INCH (25.4)
 #define DEFAULT_DPI (96.0)
-
 
 /** Maximum number of supported screens.  DRM and X11 both limit this to 32. */
@@ -156,7 +156,5 @@
 static X11CONTEXT x11Context;
 
-#define MAX_MODE_NAME_LEN 64
-#define MAX_COMMAND_LINE_LEN 512
-#define MAX_MODE_LINE_LEN 512
+#define BUFFER_SIZE 1024
 
 struct RANDROUTPUT
@@ -690,6 +688,11 @@
         char* argv[] = {NULL};
         char* env[] = {NULL};
-        execve("./VBoxDRMClient", argv, env);
-        perror("Could not start the DRM Client.");
+        char szDRMClientPath[BUFFER_SIZE];
+        RTPathExecDir(szDRMClientPath, BUFFER_SIZE);
+        RTPathAppend(szDRMClientPath, BUFFER_SIZE, "VBoxDRMClient");
+        int rc = execve(szDRMClientPath, argv, env);
+        if (rc == -1)
+            VBClLogFatalError("execve for % returns the following error %d %s\n", szDRMClientPath, errno, strerror(errno));
+        /* This is reached only when execve fails. */
         return false;
     }
