diff --git a/ArduPlane/commands_logic.pde b/ArduPlane/commands_logic.pde
index 72a4d621a2b5050d4269099aeec78dcfc424720d..3d72c711bba7e378a3d00b7ac00a61c88c4a7aaa 100644
--- a/ArduPlane/commands_logic.pde
+++ b/ArduPlane/commands_logic.pde
@@ -513,7 +513,14 @@ static bool verify_continue_and_change_alt()
     if (abs(adjusted_altitude_cm() - next_WP_loc.alt) <= 500) {
         return true;
     }
-    
+   
+    //Is the next_WP less than 200 m away?
+    if (get_distance(prev_WP_loc, next_WP_loc) < 200.f) {
+        //push another 300 m down the line
+        int32_t next_wp_bearing_cd = get_bearing_cd(prev_WP_loc, next_WP_loc);
+        location_update(next_WP_loc, next_wp_bearing_cd * 0.01f, 300.f);
+    }
+
     //keep flying the same course
     nav_controller->update_waypoint(prev_WP_loc, next_WP_loc);