diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index f41743bf269999b5406dc998d0f8b6aa30fd76fe..4d01c701cc02cfc4f2c31eae44ecb243a3836125 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -516,6 +516,36 @@ void checkExtruderAutoFans()
   #define WRITE_FAN(v) WRITE(FAN_PIN, v)
 #endif
 
+inline void _temp_error(int e, const char *msg1, const char *msg2) {
+  if (!IsStopped()) {
+    SERIAL_ERROR_START;
+    if (e >= 0) SERIAL_ERRORLN((int)e);
+    serialprintPGM(msg1);
+    MYSERIAL.write('\n');
+    #ifdef ULTRA_LCD
+      lcd_setalertstatuspgm(msg2);
+    #endif
+  }
+  #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
+    Stop();
+  #endif
+}
+
+void max_temp_error(uint8_t e) {
+  disable_heater();
+  _temp_error(e, MSG_MAXTEMP_EXTRUDER_OFF, MSG_ERR_MAXTEMP);
+}
+void min_temp_error(uint8_t e) {
+  disable_heater();
+  _temp_error(e, MSG_MINTEMP_EXTRUDER_OFF, MSG_ERR_MINTEMP);
+}
+void bed_max_temp_error(void) {
+  #if HAS_HEATER_BED
+    WRITE_HEATER_BED(0);
+  #endif
+  _temp_error(-1, MSG_MAXTEMP_BED_OFF, MSG_ERR_MAXTEMP_BED);
+}
+
 void manage_heater() {
 
   if (!temp_meas_ready) return;
@@ -623,14 +653,7 @@ void manage_heater() {
     #ifdef TEMP_SENSOR_1_AS_REDUNDANT
       if (fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) {
         disable_heater();
-        if (IsStopped() == false) {
-          SERIAL_ERROR_START;
-          SERIAL_ERRORLNPGM(MSG_EXTRUDER_SWITCHED_OFF);
-          LCD_ALERTMESSAGEPGM(MSG_ERR_REDUNDANT_TEMP); // translatable
-        }
-        #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
-          Stop();
-        #endif
+        _temp_error(-1, MSG_EXTRUDER_SWITCHED_OFF, MSG_ERR_REDUNDANT_TEMP);
       }
     #endif //TEMP_SENSOR_1_AS_REDUNDANT
 
@@ -1136,46 +1159,6 @@ void disable_heater() {
   #endif
 }
 
-void max_temp_error(uint8_t e) {
-  disable_heater();
-  if(IsStopped() == false) {
-    SERIAL_ERROR_START;
-    SERIAL_ERRORLN((int)e);
-    SERIAL_ERRORLNPGM(MSG_MAXTEMP_EXTRUDER_OFF);
-    LCD_ALERTMESSAGEPGM(MSG_ERR_MAXTEMP); // translatable
-  }
-  #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
-  Stop();
-  #endif
-}
-
-void min_temp_error(uint8_t e) {
-  disable_heater();
-  if(IsStopped() == false) {
-    SERIAL_ERROR_START;
-    SERIAL_ERRORLN((int)e);
-    SERIAL_ERRORLNPGM(MSG_MINTEMP_EXTRUDER_OFF);
-    LCD_ALERTMESSAGEPGM(MSG_ERR_MINTEMP); // translatable
-  }
-  #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
-  Stop();
-  #endif
-}
-
-void bed_max_temp_error(void) {
-  #if HAS_HEATER_BED
-    WRITE_HEATER_BED(0);
-  #endif
-  if (IsStopped() == false) {
-    SERIAL_ERROR_START;
-    SERIAL_ERRORLNPGM(MSG_MAXTEMP_BED_OFF);
-    LCD_ALERTMESSAGEPGM(MSG_ERR_MAXTEMP_BED); // translatable
-  }
-  #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE
-  Stop();
-  #endif
-}
-
 #ifdef HEATER_0_USES_MAX6675
   #define MAX6675_HEAT_INTERVAL 250
   long max6675_previous_millis = MAX6675_HEAT_INTERVAL;