diff --git a/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp b/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp
index b3aae0bfc187368b23b6a62532311174aecdbf94..f1cdaa1078ea5fd917ae59ea7f2aac5cb880bf6a 100644
--- a/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp
+++ b/Marlin/src/gcode/sdcard/M20-M30_M32-M34_M524_M928.cpp
@@ -92,18 +92,21 @@ void GcodeSuite::M24() {
   #endif
 
   #if ENABLED(PARK_HEAD_ON_PAUSE)
-    resume_print();
-  #else
-    if (card.isFileOpen()) {
-      card.startFileprint();
-      print_job_timer.start();
+    if (did_pause_print) {
+      resume_print();
+      return;
     }
+  #endif
 
-    ui.reset_status();
-    
-    #ifdef ACTION_ON_RESUME
-      SERIAL_ECHOLNPGM("//action:" ACTION_ON_RESUME);
-    #endif
+  if (card.isFileOpen()) {
+    card.startFileprint();
+    print_job_timer.start();
+  }
+
+  ui.reset_status();
+
+  #ifdef ACTION_ON_RESUME
+    SERIAL_ECHOLNPGM("//action:" ACTION_ON_RESUME);
   #endif
 }