diff --git a/libraries/AP_NavEKF/AP_NavEKF.cpp b/libraries/AP_NavEKF/AP_NavEKF.cpp
index 529bed0bf9c1e0e29dc3620ed07b21a7b1b540e0..3ed3be8b0b263a294b0710375913346d9bd79ac1 100644
--- a/libraries/AP_NavEKF/AP_NavEKF.cpp
+++ b/libraries/AP_NavEKF/AP_NavEKF.cpp
@@ -4503,8 +4503,8 @@ void  NavEKF::getFilterStatus(nav_filter_status &status) const
     status.flags.vert_pos = !hgtTimeout;            // vertical position estimate valid
     status.flags.terrain_alt = gndOffsetValid;		// terrain height estimate valid
     status.flags.const_pos_mode = constPosMode;     // constant position mode
-    status.flags.pred_horiz_pos_rel = status.flags.horiz_pos_rel;
-    status.flags.pred_horiz_pos_abs = status.flags.horiz_pos_abs;
+    status.flags.pred_horiz_pos_rel = optFlowNavPossible || gpsNavPossible; // we should be able to estimate a relative position when we enter flight mode
+    status.flags.pred_horiz_pos_abs = gpsNavPossible; // we should be able to estimate an absolute position when we enter flight mode
 }
 
 // Check arm status and perform required checks and mode changes