diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index 665e5b5ec9..554ee00313 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -308,6 +308,11 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
       return;
     }
 
+    if (target > GHV(BED_MAXTEMP, maxttemp[hotend]) - 15) {
+      SERIAL_ECHOLNPGM(MSG_PID_TEMP_TOO_HIGH);
+      return;
+    }
+
     SERIAL_ECHOLNPGM(MSG_PID_AUTOTUNE_START);
 
     disable_all_heaters(); // switch off all heaters.