diff --git a/ArduCopter/Attitude.pde b/ArduCopter/Attitude.pde
index eb39a3b2800571467141a68289e423045b7df72a..02fd3ab0be3e67723922097eed7f25a1524df517 100644
--- a/ArduCopter/Attitude.pde
+++ b/ArduCopter/Attitude.pde
@@ -854,7 +854,7 @@ static int16_t get_pilot_desired_throttle(int16_t throttle_control)
     // check throttle is above, below or in the deadband
     if (throttle_control < THROTTLE_IN_MIDDLE) {
         // below the deadband
-        throttle_out = (float)throttle_control * (float)g.throttle_mid / 500.0f;
+        throttle_out = g.throttle_min + ((float)(throttle_control-g.throttle_min))*((float)(g.throttle_mid - g.throttle_min))/((float)(500-g.throttle_min));
     }else if(throttle_control > THROTTLE_IN_MIDDLE) {
         // above the deadband
         throttle_out = g.throttle_mid + ((float)(throttle_control-500))*(float)(1000-g.throttle_mid)/500.0f;