=== modified file 'src/platforms/evdev/libinput_device.cpp'
--- src/platforms/evdev/libinput_device.cpp	2015-12-07 01:13:18 +0000
+++ src/platforms/evdev/libinput_device.cpp	2015-12-14 08:54:29 +0000
@@ -168,8 +168,8 @@
     report->received_event_from_kernel(time.count(), EV_REL, 0, 0);
 
     mir::geometry::Displacement const movement{
-        libinput_event_pointer_get_dx(pointer),
-        libinput_event_pointer_get_dy(pointer)};
+        libinput_event_pointer_get_dx_unaccelerated(pointer),
+        libinput_event_pointer_get_dy_unaccelerated(pointer)};
 
     return builder->pointer_event(time, action, button_state, hscroll_value, vscroll_value, movement.dx.as_float(),
                                   movement.dy.as_float());

=== modified file 'tests/include/mir/test/doubles/mock_libinput.h'
--- tests/include/mir/test/doubles/mock_libinput.h	2015-12-07 01:13:18 +0000
+++ tests/include/mir/test/doubles/mock_libinput.h	2015-12-14 08:54:29 +0000
@@ -61,7 +61,9 @@
     MOCK_METHOD1(libinput_event_pointer_get_time, uint32_t(libinput_event_pointer*));
     MOCK_METHOD1(libinput_event_pointer_get_time_usec, uint64_t(libinput_event_pointer*));
     MOCK_METHOD1(libinput_event_pointer_get_dx, double(libinput_event_pointer*));
+    MOCK_METHOD1(libinput_event_pointer_get_dx_unaccelerated, double(libinput_event_pointer*));
     MOCK_METHOD1(libinput_event_pointer_get_dy, double(libinput_event_pointer*));
+    MOCK_METHOD1(libinput_event_pointer_get_dy_unaccelerated, double(libinput_event_pointer*));
     MOCK_METHOD1(libinput_event_pointer_get_absolute_x, double(libinput_event_pointer*));
     MOCK_METHOD1(libinput_event_pointer_get_absolute_y, double(libinput_event_pointer*));
     MOCK_METHOD2(libinput_event_pointer_get_absolute_x_transformed, double(libinput_event_pointer*, uint32_t));

=== modified file 'tests/mir_test_doubles/mock_libinput.cpp'
--- tests/mir_test_doubles/mock_libinput.cpp	2015-12-07 01:13:18 +0000
+++ tests/mir_test_doubles/mock_libinput.cpp	2015-12-14 08:54:29 +0000
@@ -152,11 +152,21 @@
     return global_libinput->libinput_event_pointer_get_dx(event);
 }
 
+double libinput_event_pointer_get_dx_unaccelerated(libinput_event_pointer* event)
+{
+    return global_libinput->libinput_event_pointer_get_dx_unaccelerated(event);
+}
+
 double libinput_event_pointer_get_dy(libinput_event_pointer* event)
 {
     return global_libinput->libinput_event_pointer_get_dy(event);
 }
 
+double libinput_event_pointer_get_dy_unaccelerated(libinput_event_pointer* event)
+{
+    return global_libinput->libinput_event_pointer_get_dy_unaccelerated(event);
+}
+
 double libinput_event_pointer_get_absolute_x(libinput_event_pointer* event)
 {
     return global_libinput->libinput_event_pointer_get_absolute_x(event);

=== modified file 'tests/unit-tests/input/evdev/test_libinput_device.cpp'
--- tests/unit-tests/input/evdev/test_libinput_device.cpp	2015-12-07 01:13:18 +0000
+++ tests/unit-tests/input/evdev/test_libinput_device.cpp	2015-12-14 08:54:29 +0000
@@ -292,8 +292,12 @@
             .WillByDefault(Return(event_time));
         ON_CALL(mock_libinput, libinput_event_pointer_get_dx(pointer_event))
             .WillByDefault(Return(relatve_x));
+        ON_CALL(mock_libinput, libinput_event_pointer_get_dx_unaccelerated(pointer_event))
+            .WillByDefault(Return(relatve_x));
         ON_CALL(mock_libinput, libinput_event_pointer_get_dy(pointer_event))
             .WillByDefault(Return(relatve_y));
+        ON_CALL(mock_libinput, libinput_event_pointer_get_dy_unaccelerated(pointer_event))
+            .WillByDefault(Return(relatve_y));
     }
 
     void setup_absolute_pointer_event(libinput_event* event, uint64_t event_time, float x, float y)

