diff --git a/src/modules/ekf2/EKF/aid_sources/gnss/gps_control.cpp b/src/modules/ekf2/EKF/aid_sources/gnss/gps_control.cpp index f0d2c24270..ffa8570676 100644 --- a/src/modules/ekf2/EKF/aid_sources/gnss/gps_control.cpp +++ b/src/modules/ekf2/EKF/aid_sources/gnss/gps_control.cpp @@ -320,7 +320,8 @@ bool Ekf::shouldResetGpsFusion() const #endif // CONFIG_EKF2_OPTICAL_FLOW const bool is_reset_required = has_horizontal_aiding_timed_out - || isTimedOut(_time_last_hor_pos_fuse, 2 * _params.reset_timeout_max); + || (isTimedOut(_time_last_hor_pos_fuse, 2 * _params.reset_timeout_max) + && (_params.gnss_ctrl & static_cast(GnssCtrl::HPOS))); const bool is_inflight_nav_failure = _control_status.flags.in_air && isTimedOut(_time_last_hor_vel_fuse, _params.reset_timeout_max)