diff --git a/ArduCopter/navigation.pde b/ArduCopter/navigation.pde
index 7aa230bdc2762341df59599aa150406fb97076fe..286460c7457f0a686eb9d3a74398265d2d9d67a7 100644
--- a/ArduCopter/navigation.pde
+++ b/ArduCopter/navigation.pde
@@ -68,7 +68,7 @@ static void calc_distance_and_bearing()
     }
 
     // calculate home distance and bearing
-    if( ap.home_is_set && g_gps->status() == GPS::GPS_OK_FIX_3D ) {
+    if( ap.home_is_set && (g_gps->status() == GPS::GPS_OK_FIX_3D || g_gps->status() == GPS::GPS_OK_FIX_2D)) {
         home_distance = pythagorous2(curr.x, curr.y);
         home_bearing = pv_get_bearing_cd(curr,Vector3f(0,0,0));