diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp
index ec888f12b5e21c4806a0baf3a876622f08437ff6..dab6e816bf057a29f6bac721be97fd862f0ad341 100644
--- a/Marlin/src/module/motion.cpp
+++ b/Marlin/src/module/motion.cpp
@@ -1120,7 +1120,7 @@ void do_homing_move(const AxisEnum axis, const float distance, const float fr_mm
     if (axis == Z_AXIS && distance < 0 && thermalManager.isHeatingBed()) {
       serialprintPGM(msg_wait_for_bed_heating);
       LCD_MESSAGEPGM(MSG_BED_HEATING);
-      while (thermalManager.isHeatingBed()) safe_delay(200);
+      thermalManager.wait_for_bed();
       ui.reset_status();
     }
   #endif
diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp
index 6d535eeef024d5fa5e3de0b15791d618c8f0d1bc..562914a858ffb697faa11928b6c501c57ce3c554 100644
--- a/Marlin/src/module/probe.cpp
+++ b/Marlin/src/module/probe.cpp
@@ -526,7 +526,7 @@ static bool do_probe_move(const float z, const float fr_mm_s) {
     if (thermalManager.isHeatingBed()) {
       serialprintPGM(msg_wait_for_bed_heating);
       LCD_MESSAGEPGM(MSG_BED_HEATING);
-      while (thermalManager.isHeatingBed()) safe_delay(200);
+      thermalManager.wait_for_bed();
       ui.reset_status();
     }
   #endif