diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp
index 1bd50e8bea..6e8f1f117a 100644
--- a/Marlin/src/Marlin.cpp
+++ b/Marlin/src/Marlin.cpp
@@ -365,8 +365,6 @@ void suicide() {
  ***************** GCode Handlers *****************
  **************************************************/
 
-#include "gcode/motion/G4.h"
-
 #if ENABLED(BEZIER_CURVE_SUPPORT)
   #include "gcode/motion/G5.h"
 #endif
diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp
index a8c05c2141..d0d9df282f 100644
--- a/Marlin/src/gcode/gcode.cpp
+++ b/Marlin/src/gcode/gcode.cpp
@@ -112,7 +112,6 @@ void GcodeSuite::dwell(millis_t time) {
 //
 // Placeholders for non-migrated codes
 //
-extern void gcode_G4();
 extern void gcode_G5();
 extern void gcode_G12();
 extern void gcode_G17();
@@ -295,7 +294,7 @@ void GcodeSuite::process_next_command() {
 
       // G4 Dwell
       case 4:
-        gcode_G4();
+        G4();
         break;
 
       #if ENABLED(BEZIER_CURVE_SUPPORT)
diff --git a/Marlin/src/gcode/gcode.h b/Marlin/src/gcode/gcode.h
index 68d8f1e506..eb77b7b553 100644
--- a/Marlin/src/gcode/gcode.h
+++ b/Marlin/src/gcode/gcode.h
@@ -299,7 +299,7 @@ public:
     #define KEEPALIVE_STATE(n) NOOP
   #endif
 
-  void dwell(millis_t time);
+  static void dwell(millis_t time);
 
 private:
 
diff --git a/Marlin/src/gcode/motion/G4.h b/Marlin/src/gcode/motion/G4.cpp
similarity index 90%
rename from Marlin/src/gcode/motion/G4.h
rename to Marlin/src/gcode/motion/G4.cpp
index 8eb3f198dd..1630cf0b44 100644
--- a/Marlin/src/gcode/motion/G4.h
+++ b/Marlin/src/gcode/motion/G4.cpp
@@ -20,10 +20,14 @@
  *
  */
 
+#include "../gcode.h"
+#include "../../module/stepper.h"
+#include "../../lcd/ultralcd.h"
+
 /**
  * G4: Dwell S<seconds> or P<milliseconds>
  */
-void gcode_G4() {
+void GcodeSuite::G4() {
   millis_t dwell_ms = 0;
 
   if (parser.seenval('P')) dwell_ms = parser.value_millis(); // milliseconds to wait
@@ -33,5 +37,5 @@ void gcode_G4() {
 
   if (!lcd_hasstatus()) LCD_MESSAGEPGM(MSG_DWELL);
 
-  gcode.dwell(dwell_ms);
+  dwell(dwell_ms);
 }