diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index f01c0862ba2..4895d1da9cd 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -1489,6 +1489,9 @@ void Temperature::set_current_temp_raw() {
 ISR(TIMER0_COMPB_vect) { Temperature::isr(); }
 
 void Temperature::isr() {
+  //Allow UART and stepper ISRs
+  CBI(TIMSK0, OCIE0B); //Disable Temperature ISR
+  sei();
 
   static uint8_t temp_count = 0;
   static TempState temp_state = StartupDelay;
@@ -1940,4 +1943,6 @@ void Temperature::isr() {
       if (!endstop_monitor_count) endstop_monitor();  // report changes in endstop status
     }
   #endif
+  
+  SBI(TIMSK0, OCIE0B); //re-enable Temperature ISR
 }