diff --git a/ArduCopter/precision_landing.cpp b/ArduCopter/precision_landing.cpp index 769bf69bc0..702984448f 100644 --- a/ArduCopter/precision_landing.cpp +++ b/ArduCopter/precision_landing.cpp @@ -21,7 +21,9 @@ void Copter::update_precland() if (rangefinder_alt_ok()) { height_above_ground_cm = rangefinder_state.alt_cm; } else if (terrain_use()) { - current_loc.get_alt_cm(Location_Class::ALT_FRAME_ABOVE_TERRAIN, height_above_ground_cm); + if (!current_loc.get_alt_cm(Location_Class::ALT_FRAME_ABOVE_TERRAIN, height_above_ground_cm)) { + height_above_ground_cm = current_loc.alt; + } } copter.precland.update(height_above_ground_cm);