diff --git a/src/modules/mc_att_control/mc_att_control_main.cpp b/src/modules/mc_att_control/mc_att_control_main.cpp
index ef11870c30229d6fbf9f5e0aa050c7720e3be3b5..acb153fbcc133b99a68744b18ff31dce71bac807 100644
--- a/src/modules/mc_att_control/mc_att_control_main.cpp
+++ b/src/modules/mc_att_control/mc_att_control_main.cpp
@@ -1017,6 +1017,22 @@ MulticopterAttitudeControl::run()
 		perf_end(_loop_perf);
 	}
 
+	orb_unsubscribe(_v_att_sub);
+	orb_unsubscribe(_v_att_sp_sub);
+	orb_unsubscribe(_v_rates_sp_sub);
+	orb_unsubscribe(_v_control_mode_sub);
+	orb_unsubscribe(_params_sub);
+	orb_unsubscribe(_manual_control_sp_sub);
+	orb_unsubscribe(_vehicle_status_sub);
+	orb_unsubscribe(_motor_limits_sub);
+	orb_unsubscribe(_battery_status_sub);
+
+	for (unsigned s = 0; s < _gyro_count; s++) {
+		orb_unsubscribe(_sensor_gyro_sub[s]);
+	}
+
+	orb_unsubscribe(_sensor_correction_sub);
+	orb_unsubscribe(_sensor_bias_sub);
 }
 
 int MulticopterAttitudeControl::task_spawn(int argc, char *argv[])