diff --git a/src/mouse.c b/src/mouse.c
index 52bd6e0..7c605bf 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -70,6 +70,8 @@
 #include "xf86_OSproc.h"
 #include "xf86OSmouse.h"
 
+#include "ptrveloc.h"
+
 #ifndef NEED_XF86_TYPES
 #define NEED_XF86_TYPES	/* for xisb.h when !XFree86LOADER */
 #endif
@@ -1804,6 +1806,25 @@ MouseProc(DeviceIntPtr device, int what)
 	    RegisterBlockAndWakeupHandlers (MouseBlockHandler, MouseWakeupHandler,
 					    (pointer) pInfo);
 	}
+
+	/**
+	 * setup dix accel to avoid configuration redundancies
+	 */
+	DeviceVelocityPtr pVel = GetDevicePredictableAccelData(pInfo->dev);
+	mPriv = (mousePrivPtr)pMse->mousePriv;
+	if(pVel){
+	    if(pMse->sampleRate > 0){
+		pVel->corr_mul = 1000.0f/(float)pMse->sampleRate;
+		xf86Msg(X_INFO, "%s: setting velocity scale from sample rate: %.2f\n",
+			    pInfo->name, pVel->corr_mul);
+	    }
+	    if(pVel && mPriv && mPriv->sensitivity){
+		xf86Msg(X_INFO, "%s: postponing sensitivity\n",
+			    pInfo->name);
+		pVel->const_acceleration *= mPriv->sensitivity;
+		mPriv->sensitivity = 1.0;
+	    }
+	}
 	break;
 	    
     case DEVICE_OFF:





