diff --git a/ArduCopter/Parameters.h b/ArduCopter/Parameters.h
index 50d6ebd33caa739b0aa9aed1c13f6b59782c5acd..4c37ee7e4548806621766a472da06323081fcf69 100644
--- a/ArduCopter/Parameters.h
+++ b/ArduCopter/Parameters.h
@@ -110,7 +110,8 @@ public:
         k_param_rc_14,
         k_param_rally,
         k_param_hybrid_brake_rate,
-        k_param_hybrid_brake_angle_max, // 47
+        k_param_hybrid_brake_angle_max,
+        k_param_pilot_accel_z,          // 48
 
         // 65: AP_Limits Library
         k_param_limits = 65,            // deprecated - remove
@@ -346,7 +347,7 @@ public:
     AP_Int32        rtl_loiter_time;
     AP_Int16        land_speed;
     AP_Int16        pilot_velocity_z_max;        // maximum vertical velocity the pilot may request
-
+    AP_Int16        pilot_accel_z;               // vertical acceleration the pilot may request
 
     // Throttle
     //
diff --git a/ArduCopter/Parameters.pde b/ArduCopter/Parameters.pde
index 9667c4dd5fb88efd70848dc37b8438f6ddea3887..bc342e0c315f072270ceda591bb084ad10b71c10 100644
--- a/ArduCopter/Parameters.pde
+++ b/ArduCopter/Parameters.pde
@@ -226,11 +226,20 @@ const AP_Param::Info var_info[] PROGMEM = {
     // @DisplayName: Pilot maximum vertical speed
     // @Description: The maximum vertical velocity the pilot may request in cm/s
     // @Units: Centimeters/Second
-    // @Range: 10 500
+    // @Range: 50 500
     // @Increment: 10
     // @User: Standard
     GSCALAR(pilot_velocity_z_max,     "PILOT_VELZ_MAX",   PILOT_VELZ_MAX),
 
+    // @Param: PILOT_ACCEL_Z
+    // @DisplayName: Pilot vertical acceleration
+    // @Description: The vertical acceleration used when pilot is controlling the altitude
+    // @Units: cm/s/s
+    // @Range: 50 500
+    // @Increment: 10
+    // @User: Standard
+    GSCALAR(pilot_accel_z,  "PILOT_ACCEL_Z",    PILOT_ACCEL_Z_DEFAULT),
+
     // @Param: THR_MIN
     // @DisplayName: Throttle Minimum
     // @Description: The minimum throttle that will be sent to the motors to keep them spinning
diff --git a/ArduCopter/config.h b/ArduCopter/config.h
index 4ffc928b9afcbccf387296c5135d2bb2358f1d93..849925d80fd6dcd43741917edef45fd6e887e5bb 100644
--- a/ArduCopter/config.h
+++ b/ArduCopter/config.h
@@ -676,10 +676,13 @@
  # define THROTTLE_RATE_P       6.0f
 #endif
 
-// default maximum vertical velocity the pilot may request
+// default maximum vertical velocity and acceleration the pilot may request
 #ifndef PILOT_VELZ_MAX
  # define PILOT_VELZ_MAX    250     // maximum vertical velocity in cm/s
 #endif
+#ifndef PILOT_ACCEL_Z_DEFAULT
+ # define PILOT_ACCEL_Z_DEFAULT 250 // vertical acceleration in cm/s/s while altitude is under pilot control
+#endif
 
 // max distance in cm above or below current location that will be used for the alt target when transitioning to alt-hold mode
 #ifndef ALT_HOLD_INIT_MAX_OVERSHOOT