diff --git a/Marlin/src/gcode/lcd/M0_M1.cpp b/Marlin/src/gcode/lcd/M0_M1.cpp
index 9ed7b2af42fcf44e1cd673e266b393bea027f286..bf6a3d23d514e0c22d14777fbb47d4bf19585289 100644
--- a/Marlin/src/gcode/lcd/M0_M1.cpp
+++ b/Marlin/src/gcode/lcd/M0_M1.cpp
@@ -102,7 +102,7 @@ void GcodeSuite::M0_M1() {
   #endif
 
   if (ms > 0) ms += millis();  // wait until this time for a click
-  while (wait_for_user && (ms > 0 || PENDING(millis(), ms))) idle();
+  while (wait_for_user || (ms > 0 && PENDING(millis(), ms))) idle();
 
   #if HAS_LEDS_OFF_FLAG
     printerEventLEDs.onResumeAfterWait();