diff --git a/libraries/AP_NavEKF/AP_NavEKF.cpp b/libraries/AP_NavEKF/AP_NavEKF.cpp
index 5d3e0c5f48b29c59b6401b4510606003e062daf2..4021a728f4e4a63e45393e365b401919706ef80d 100644
--- a/libraries/AP_NavEKF/AP_NavEKF.cpp
+++ b/libraries/AP_NavEKF/AP_NavEKF.cpp
@@ -3644,7 +3644,11 @@ bool NavEKF::getLLH(struct Location &loc) const
     loc.alt = _ahrs->get_home().alt - state.position.z*100;
     loc.flags.relative_alt = 0;
     loc.flags.terrain_alt = 0;
-    location_offset(loc, state.position.x, state.position.y);
+    if (constPosMode) {
+        location_offset(loc, lastKnownPositionNE.x, lastKnownPositionNE.y);
+    } else {
+        location_offset(loc, state.position.x, state.position.y);
+    }
     return true;
 }