diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index a5a60e2dd10478e0e43e246aa043f1cecc473944..0e737f2520852d0185314946ef26fb38310f6598 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -13648,7 +13648,10 @@ void prepare_move_to_destination() {
     const millis_t ms = millis();
     if (ELAPSED(ms, nextMotorCheck)) {
       nextMotorCheck = ms + 2500UL; // Not a time critical function, so only check every 2.5s
-      if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON || thermalManager.soft_pwm_amount_bed > 0
+      if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON
+        #if HAS_HEATED_BED
+          || thermalManager.soft_pwm_amount_bed > 0
+        #endif
           || E0_ENABLE_READ == E_ENABLE_ON // If any of the drivers are enabled...
           #if E_STEPPERS > 1
             || E1_ENABLE_READ == E_ENABLE_ON
diff --git a/Marlin/power.cpp b/Marlin/power.cpp
index dbe2ff1dc24714bb8531e05f0d1a90b17ea3ffa4..df0579153a735c0f5e3ba66bd9280060e40a0215 100644
--- a/Marlin/power.cpp
+++ b/Marlin/power.cpp
@@ -49,8 +49,10 @@ bool Power::is_power_needed() {
     if (controllerFanSpeed > 0) return true;
   #endif
 
-  if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON ||
-      thermalManager.soft_pwm_amount_bed > 0
+  if (X_ENABLE_READ == X_ENABLE_ON || Y_ENABLE_READ == Y_ENABLE_ON || Z_ENABLE_READ == Z_ENABLE_ON
+      #if HAS_HEATED_BED
+        || thermalManager.soft_pwm_amount_bed > 0
+      #endif
       || E0_ENABLE_READ == E_ENABLE_ON // If any of the drivers are enabled...
       #if E_STEPPERS > 1
         || E1_ENABLE_READ == E_ENABLE_ON