Index: /trunk/src/VBox/Additions/linux/installer/vboxadd-x11.sh
===================================================================
--- /trunk/src/VBox/Additions/linux/installer/vboxadd-x11.sh	(revision 39808)
+++ /trunk/src/VBox/Additions/linux/installer/vboxadd-x11.sh	(revision 39809)
@@ -292,5 +292,7 @@
     # We need to tell our xorg.conf hacking script whether /dev/psaux exists
     nopsaux="--nopsaux"
-    test -c /dev/psaux && nopsaux=""
+    case "`uname -r`" in 2.4.*)
+        test -c /dev/psaux && nopsaux="";;
+    esac
     # The video driver to install for X.Org 6.9+
     vboxvideo_src=
@@ -407,5 +409,4 @@
             vboxmouse_src=vboxmouse_drv.o
             automouse=""
-            newmouse=""
             ;;
         * )
Index: /trunk/src/VBox/Additions/x11/Installer/x11config.sh
===================================================================
--- /trunk/src/VBox/Additions/x11/Installer/x11config.sh	(revision 39808)
+++ /trunk/src/VBox/Additions/x11/Installer/x11config.sh	(revision 39809)
@@ -103,5 +103,5 @@
   Identifier   "Mouse[1]"
   Option       "Buttons" "9"
-  Option       "Device" "/dev/input/mice"
+  Option       "Device" "$old_mouse_dev"
   Option       "Name" "VirtualBox Mouse Buttons"
   Option       "Protocol" "explorerps/2"
Index: /trunk/src/VBox/Additions/x11/vboxmouse/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxmouse/Makefile.kmk	(revision 39808)
+++ /trunk/src/VBox/Additions/x11/vboxmouse/Makefile.kmk	(revision 39809)
@@ -51,7 +51,11 @@
 	$(PATH_SUB_CURRENT)
  vboxmouse_drv_SOURCES = \
-	mouse.c \
-	pnp.c \
-	VBoxUtils_68.c
+	vboxmouse_15.c
+ # Any global symbols in the driver object files will be added to XFree86's
+ # symbol table, which can cause problems if we e.g. define a symbol in two
+ # modules.
+ vboxmouse_drv_POST_CMDS = \
+	objcopy --keep-global-symbol vboxmouseModuleData $(out) $(out)-objcopy$$(NLTAB) \
+	$(MV) -f $(out)-objcopy $(out)
 endif
 
@@ -249,5 +253,5 @@
 	$(QUIET)$(call MSG_L1,Checking for unresolved symbols in $<)
 	$(QUIET)/bin/sh $(PATH_ROOT)/src/bldprogs/checkUndefined.sh $(KBUILD_TARGET) \
-	    "$(vboxmouse_drv_1_STAGE_TARGET)" "$(VBOXMOUSE_SRC_PATH)/undefined_68" --static
+	    "$(vboxmouse_drv_1_STAGE_TARGET)" "$(VBOXMOUSE_SRC_PATH)/undefined_15" --static
 	$(QUIET)$(APPEND) -t "$@" "done"
      endif
Index: /trunk/src/VBox/Additions/x11/vboxmouse/undefined_15
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxmouse/undefined_15	(revision 39808)
+++ /trunk/src/VBox/Additions/x11/vboxmouse/undefined_15	(revision 39809)
@@ -1,2 +1,3 @@
+ErrorF
 GetMotionHistory
 GetMotionHistorySize
@@ -5,4 +6,6 @@
 InitPtrFeedbackClassDeviceStruct
 InitValuatorClassDeviceStruct
+VErrorF
+Xalloc
 _Jv_RegisterClasses
 ___errno
@@ -95,5 +98,4 @@
 xf86AddInputDriver
 xf86AllocateInput
-xf86CheckStrOption
 xf86CollectInputOptions
 xf86DeleteInput
@@ -107,2 +109,7 @@
 xf86ScaleAxis
 xf86SetIntOption
+xf86SetStrOption
+xf86errno
+xf86isspace
+xf86strtoul
+xf86vsnprintf
Index: /trunk/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c	(revision 39808)
+++ /trunk/src/VBox/Additions/x11/vboxmouse/vboxmouse_15.c	(revision 39809)
@@ -53,7 +53,11 @@
 #include <xf86Module.h>
 
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
+#ifdef VBOX_GUESTR3XF86MOD
+# define _X_EXPORT
+#else
+# include <errno.h>
+# include <fcntl.h>
+# include <unistd.h>
+#endif
 
 #include "product-generated.h"
@@ -265,5 +269,5 @@
     pInfo->flags |= XI86_ALWAYS_CORE;
 
-    device = xf86CheckStrOption(pInfo->options, "Device",
+    device = xf86SetStrOption(pInfo->options, "Device",
                                 "/dev/vboxguest");
 
Index: /trunk/src/VBox/Additions/x11/vboxvideo/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Additions/x11/vboxvideo/Makefile.kmk	(revision 39808)
+++ /trunk/src/VBox/Additions/x11/vboxvideo/Makefile.kmk	(revision 39809)
@@ -88,5 +88,10 @@
 	$(PATH_ROOT)/src/VBox/Runtime/common/alloc/heapsimple.cpp \
 	$(PATH_ROOT)/src/VBox/Runtime/common/alloc/heapoffset.cpp
-
+ # Any global symbols in the driver object files will be added to XFree86's
+ # symbol table, which can cause problems if we e.g. define a symbol in two
+ # modules.
+ vboxvideo_drv_POST_CMDS = \
+	objcopy --keep-global-symbol vboxvideoModuleData $(out) $(out)-objcopy$$(NLTAB) \
+	$(MV) -f $(out)-objcopy $(out)
 
 #
