diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp
index b9ded9863ad5b0067be80f574304d4bd844ddcda..5c84db13de2dceb5c24e05ac636561e0c9e0b1e1 100644
--- a/Marlin/src/gcode/gcode.cpp
+++ b/Marlin/src/gcode/gcode.cpp
@@ -701,8 +701,7 @@ void GcodeSuite::process_next_command() {
    */
   void GcodeSuite::process_subcommands_now_P(const char *pgcode) {
     // Save the parser state
-    char saved_cmd[strlen(parser.command_ptr) + 1];
-    strcpy(saved_cmd, parser.command_ptr);
+    const char * const saved_cmd = parser.command_ptr;
 
     // Process individual commands in string
     while (pgm_read_byte_near(pgcode)) {