diff --git a/ArduPlane/Attitude.pde b/ArduPlane/Attitude.pde
index 2f16e57cbc6c4aa175afd002c91e2925096c2dbc..af70bef9839d818fe01c63ffeb65dca89b5a9f9e 100644
--- a/ArduPlane/Attitude.pde
+++ b/ArduPlane/Attitude.pde
@@ -364,6 +364,11 @@ static void stabilize()
         rollController.reset_I();
         pitchController.reset_I();
         yawController.reset_I();
+
+        // if moving very slowly also zero the steering integrator
+        if (gps.ground_speed() < 1) {
+            steerController.reset_I();            
+        }
     }
 }
 
diff --git a/ArduPlane/system.pde b/ArduPlane/system.pde
index 537faa230f2d2fc9f52c819ef2131dbd5e41989d..48f4a20fafb48dbf6cc22418b2c1a29edb9a163e 100644
--- a/ArduPlane/system.pde
+++ b/ArduPlane/system.pde
@@ -390,6 +390,7 @@ static void set_mode(enum FlightMode mode)
     rollController.reset_I();
     pitchController.reset_I();
     yawController.reset_I();    
+    steerController.reset_I();    
 }
 
 // exit_mode - perform any cleanup required when leaving a flight mode