diff --git a/ArduCopter/events.pde b/ArduCopter/events.pde index 7f63ae9d90..36762e51fb 100644 --- a/ArduCopter/events.pde +++ b/ArduCopter/events.pde @@ -230,8 +230,9 @@ static void failsafe_gcs_check() { uint32_t last_gcs_update_ms; - // return immediately if gcs failsafe is disabled, gcs has never been connected or we are not overriding rc controls from the gcs - if( g.failsafe_gcs == FS_GCS_DISABLED || failsafe.last_heartbeat_ms == 0 || !failsafe.rc_override_active) { + // return immediately if gcs failsafe is disabled, gcs has never been connected or we are not overriding rc controls from the gcs and we are not in guided mode + // this also checks to see if we have a GCS failsafe active, if we do, then must continue to process the logic for recovery from this state. + if((!failsafe.gcs)&&(g.failsafe_gcs == FS_GCS_DISABLED || failsafe.last_heartbeat_ms == 0 || (!failsafe.rc_override_active && control_mode != GUIDED))) { return; }