diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp
index c1073d495336ef7b74dce42747eed1123e774774..0b22e745bbd16bb928dfafddb67365f60f7dfba3 100644
--- a/Marlin/src/Marlin.cpp
+++ b/Marlin/src/Marlin.cpp
@@ -355,8 +355,6 @@ bool pin_is_protected(const int8_t pin) {
   return false;
 }
 
-#include "gcode/control/M226.h"
-
 #if ENABLED(EXPERIMENTAL_I2CBUS)
   #include "gcode/feature/i2c/M260_M261.h"
 #endif
diff --git a/Marlin/src/gcode/control/M226.h b/Marlin/src/gcode/control/M226.cpp
similarity index 92%
rename from Marlin/src/gcode/control/M226.h
rename to Marlin/src/gcode/control/M226.cpp
index 003590f91097735286e512fd5d123698a879e3cf..c0f5111e90f485a13652f15a6c9cdb17f837afc6 100644
--- a/Marlin/src/gcode/control/M226.h
+++ b/Marlin/src/gcode/control/M226.cpp
@@ -20,10 +20,14 @@
  *
  */
 
+#include "../gcode.h"
+#include "../../Marlin.h" // for pin_is_protected and idle()
+#include "../../module/stepper.h"
+
 /**
  * M226: Wait until the specified pin reaches the state required (M226 P<pin> S<state>)
  */
-void gcode_M226() {
+void GcodeSuite::M226() {
   if (parser.seen('P')) {
     const int pin_number = parser.value_int(),
               pin_state = parser.intval('S', -1); // required pin state - default is inverted
diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp
index 71557f7fd58c53878447c29c288f76696906c8df..79dd5e3bc7faeac181170030e905769d3d470d23 100644
--- a/Marlin/src/gcode/gcode.cpp
+++ b/Marlin/src/gcode/gcode.cpp
@@ -119,7 +119,6 @@ void GcodeSuite::dwell(millis_t time) {
 extern void gcode_M163();
 extern void gcode_M164();
 extern void gcode_M165();
-extern void gcode_M226();
 extern void gcode_M240();
 extern void gcode_M250();
 extern void gcode_M260();
@@ -564,9 +563,7 @@ void GcodeSuite::process_next_command() {
         M221();
         break;
 
-      case 226: // M226: Wait until a pin reaches a state
-        gcode_M226();
-        break;
+      case 226: M226(); break;    // M226: Wait until a pin reaches a state
 
       #if HAS_SERVOS
         case 280: // M280: Set servo position absolute