diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp
index 034326bde612018daa72bda7bdefe1c4f8783e32..8bb22c8a2fdff2cd1175df83401a77628b82d5de 100644
--- a/Marlin/cardreader.cpp
+++ b/Marlin/cardreader.cpp
@@ -481,7 +481,8 @@ void CardReader::write_command(char *buf) {
 }
 
 void CardReader::checkautostart(bool force) {
-  if (!(force || !autostart_stilltocheck || next_autostart_ms >= millis())) return;
+  if (!force && (!autostart_stilltocheck || next_autostart_ms < millis()))
+    return;
 
   autostart_stilltocheck = false;