Index: /trunk/src/VBox/Main/linux/server.cpp
===================================================================
--- /trunk/src/VBox/Main/linux/server.cpp	(revision 1805)
+++ /trunk/src/VBox/Main/linux/server.cpp	(revision 1806)
@@ -34,4 +34,5 @@
 #include <nsILocalFile.h>
 
+#include "linux/server.h"
 #include "Logging.h"
 
@@ -998,5 +999,6 @@
         }
 
-        /* get the executable name (will be used below) */
+        /* not really necessary at the moment */
+#if 0
         if (!RTProcGetExecutableName (path, sizeof (path)))
         {
@@ -1004,6 +1006,5 @@
             break;
         }
-
-        LogFlowFunc (("Will use \"%s\" as server name.\n", path));
+#endif
 
         nsCOMPtr<nsIServiceManager> servMan;
@@ -1050,6 +1051,7 @@
         NS_ADDREF (gIpcServ = ipcServ);
 
-        /* use the executable name as the server name */
-        rc = gIpcServ->AddName (path);
+        LogFlowFunc (("Will use \"%s\" as server name.\n", VBOXSVC_IPC_NAME));
+
+        rc = gIpcServ->AddName (VBOXSVC_IPC_NAME);
         if (NS_FAILED (rc))
         {
Index: /trunk/src/VBox/Main/linux/server.h
===================================================================
--- /trunk/src/VBox/Main/linux/server.h	(revision 1806)
+++ /trunk/src/VBox/Main/linux/server.h	(revision 1806)
@@ -0,0 +1,33 @@
+/** @file
+ *
+ * Common header for XPCOM server and its module counterpart
+ */
+
+/*
+ * Copyright (C) 2006 InnoTek Systemberatung GmbH
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation,
+ * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
+ * distribution. VirtualBox OSE is distributed in the hope that it will
+ * be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * If you received this file as part of a commercial VirtualBox
+ * distribution, then only the terms of your commercial VirtualBox
+ * license agreement apply instead of the previous paragraph.
+ */
+
+#ifndef ____H_LINUX_SERVER
+#define ____H_LINUX_SERVER
+
+#include <VBox/version.h>
+
+/**
+ * IPC name used to resolve the client ID of the server. 
+ */
+#define VBOXSVC_IPC_NAME "VBoxSVC-" VBOX_VERSION_STRING
+
+#endif /* ____H_LINUX_SERVER */
+
Index: /trunk/src/VBox/Main/linux/server_module.cpp
===================================================================
--- /trunk/src/VBox/Main/linux/server_module.cpp	(revision 1805)
+++ /trunk/src/VBox/Main/linux/server_module.cpp	(revision 1806)
@@ -41,4 +41,5 @@
 #include <VirtualBox_XPCOM.h>
 
+#include "linux/server.h"
 #include "Logging.h"
 
@@ -72,4 +73,10 @@
 };
 
+/** 
+ *  Full path to the VBoxSVC executable.
+ */
+static char VBoxSVCPath [RTPATH_MAX];
+static bool IsVBoxSVCPathSet = false;
+
 /*
  *  The following macros define the method necessary to provide a list of
@@ -80,14 +87,4 @@
 NS_DECL_CLASSINFO (VirtualBox)
 NS_IMPL_CI_INTERFACE_GETTER1 (VirtualBox, IVirtualBox)
-
-/** 
- *  Name of the VBoxSVC server-side IPC client.
- *
- *  This name simply matches the full path to the VBoxSVC executable (to
- *  guarantee unicity) so it is also used to start the VBoxSVC process when it
- *  is not started.
- */
-static char VBoxSVCName [RTPATH_MAX];
-static bool IsVBoxSVCNameSet = false;
 
 /** 
@@ -116,5 +113,5 @@
         }
 
-        if (!IsVBoxSVCNameSet)
+        if (!IsVBoxSVCPathSet)
         {
             /* Get the directory containing XPCOM components -- the VBoxSVC
@@ -136,7 +133,9 @@
                                  rc = NS_ERROR_FAILURE);
 
-                    strcpy (VBoxSVCName, path.get());
-                    RTPathStripFilename (VBoxSVCName);
-                    strcat (VBoxSVCName, VBoxSVC_exe);
+                    strcpy (VBoxSVCPath, path.get());
+                    RTPathStripFilename (VBoxSVCPath);
+                    strcat (VBoxSVCPath, VBoxSVC_exe);
+
+                    IsVBoxSVCPathSet = true;
                 }
             }
@@ -156,17 +155,17 @@
         do
         {
-            LogFlowFunc (("Resolving server name \"%s\"...\n", VBoxSVCName));
+            LogFlowFunc (("Resolving server name \"%s\"...\n", VBOXSVC_IPC_NAME));
 
             PRUint32 serverID = 0;
-            rc = ipcServ->ResolveClientName (VBoxSVCName, &serverID);
+            rc = ipcServ->ResolveClientName (VBOXSVC_IPC_NAME, &serverID);
             if (NS_FAILED (rc))
             {
-                LogFlowFunc (("Starting server...\n", VBoxSVCName));
+                LogFlowFunc (("Starting server...\n", VBoxSVCPath));
 
                 startedOnce = true;
 
                 RTPROCESS pid = NIL_RTPROCESS;
-                const char *args[] = { VBoxSVCName, "--automate", 0 };
-                vrc = RTProcCreate (VBoxSVCName, args, NULL, 0, &pid);
+                const char *args[] = { VBoxSVCPath, "--automate", 0 };
+                vrc = RTProcCreate (VBoxSVCPath, args, NULL, 0, &pid);
                 if (VBOX_FAILURE (vrc))
                 {
@@ -179,5 +178,5 @@
                 {
                     RTThreadSleep (VBoxSVC_WaitSlice);
-                    rc = ipcServ->ResolveClientName (VBoxSVCName, &serverID);
+                    rc = ipcServ->ResolveClientName (VBOXSVC_IPC_NAME, &serverID);
                     if (NS_SUCCEEDED (rc))
                         break;
@@ -218,5 +217,5 @@
             {
                 nsresult rc2 =
-                    ipcServ->ResolveClientName (VBoxSVCName, &serverID);
+                    ipcServ->ResolveClientName (VBOXSVC_IPC_NAME, &serverID);
                 if (NS_SUCCEEDED (rc2))
                     break;
