diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 9aa2e0d499da60c1e0529094ea6458c34c3419f0..d7d35d240028971aa99e48381f62f2eb26ca636e 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -113,9 +113,11 @@
 #ifdef PIDTEMP
   //#define PID_DEBUG // Sends debug data to the serial port. 
   //#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
+  #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
+                                  // is more then PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
   #define PID_INTEGRAL_DRIVE_MAX 255  //limit for the integral term
   #define K1 0.95 //smoothing factor withing the PID
-  #define PID_dT ((16.0 * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the
+  #define PID_dT ((16.0 * 8.0)/(F_CPU / 64.0 / 256.0)) //sampling period of the temperature routine
 
 // If you are using a preconfigured hotend then you can use one of the value sets by uncommenting it
 // Ultimaker
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index 663ea679ea11e81411df22f2d9b4c84e4f4b7a74..5a0762d9f1bd2573e1050007616c20c025a0b3bc 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -319,11 +319,11 @@ void manage_heater()
 
     #ifndef PID_OPENLOOP
         pid_error[e] = target_temperature[e] - pid_input;
-        if(pid_error[e] > 10) {
+        if(pid_error[e] > PID_FUNCTIONAL_RANGE) {
           pid_output = PID_MAX;
           pid_reset[e] = true;
         }
-        else if(pid_error[e] < -10) {
+        else if(pid_error[e] < -PID_FUNCTIONAL_RANGE) {
           pid_output = 0;
           pid_reset[e] = true;
         }