diff --git a/conf/airframes/TU_Delft/MicrojetCDW.xml b/conf/airframes/TU_Delft/MicrojetCDW.xml
index 34d651058f..baba44fc6f 100644
--- a/conf/airframes/TU_Delft/MicrojetCDW.xml
+++ b/conf/airframes/TU_Delft/MicrojetCDW.xml
@@ -5,7 +5,7 @@
-
+
@@ -28,7 +28,7 @@
-
+
@@ -42,7 +42,7 @@
-
+
@@ -81,9 +81,9 @@
-
-
-
+
+
+
@@ -92,7 +92,7 @@
-
+
@@ -161,7 +161,7 @@
-
+
diff --git a/sw/airborne/modules/ins/ins_ppzuavimu.c b/sw/airborne/modules/ins/ins_ppzuavimu.c
index 2f7394ab89..4f5d5ae9ea 100644
--- a/sw/airborne/modules/ins/ins_ppzuavimu.c
+++ b/sw/airborne/modules/ins/ins_ppzuavimu.c
@@ -195,9 +195,9 @@ void ppzuavimu_module_event( void )
z = (int16_t) ((ppzuavimu_adxl345.buf[5] << 8) | ppzuavimu_adxl345.buf[4]);
#ifdef ASPIRIN_IMU
- VECT3_ASSIGN(imu.accel_unscaled, -x, y, z);
+ VECT3_ASSIGN(imu.accel_unscaled, x, -y, -z);
#else // PPZIMU
- VECT3_ASSIGN(imu.accel_unscaled, x, -y, z);
+ VECT3_ASSIGN(imu.accel_unscaled, -x, y, -z);
#endif
acc_valid = TRUE;
diff --git a/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c b/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c
index 62a5e78f5b..788acb1e8f 100644
--- a/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c
+++ b/sw/airborne/subsystems/ahrs/ahrs_float_dcm.c
@@ -213,6 +213,13 @@ void ahrs_update_accel(void)
ACCELS_FLOAT_OF_BFP(accel_float, imu.accel);
+ // DCM filter uses g-force as positive
+ // accelerometer measures [0 0 -g] in a static case
+
+ accel_float.x = -accel_float.x;
+ accel_float.y = -accel_float.y;
+ accel_float.z = -accel_float.z;
+
#ifdef USE_GPS
if (gps.fix == GPS_FIX_3D) { //Remove centrifugal acceleration.
accel_float.y += gps.speed_3d/100. * Omega[2]; // Centrifugal force on Acc_y = GPS_speed*GyroZ