diff --git a/Marlin/src/gcode/feature/pause/G60.cpp b/Marlin/src/gcode/feature/pause/G60.cpp
index 94b73cd7d92b9e34c14f6c2ff07119f77383a129..a0d099ad69b8b11645357fd299d16586cc8ab5b8 100644
--- a/Marlin/src/gcode/feature/pause/G60.cpp
+++ b/Marlin/src/gcode/feature/pause/G60.cpp
@@ -45,7 +45,7 @@ void GcodeSuite::G60() {
   }
 
   stored_position[slot] = current_position;
-  SBI(saved_slots, slot);
+  SBI(saved_slots[slot >> 3], slot & 0b00000111);
 
   #if ENABLED(SAVED_POSITIONS_DEBUG)
     const xyze_pos_t &pos = stored_position[slot];
diff --git a/Marlin/src/gcode/feature/pause/G61.cpp b/Marlin/src/gcode/feature/pause/G61.cpp
index 5d854dfab48222cd9ede3530261efe05144d6d9b..d531c15c800403b3e0dece20bca25e6f992d9ef9 100644
--- a/Marlin/src/gcode/feature/pause/G61.cpp
+++ b/Marlin/src/gcode/feature/pause/G61.cpp
@@ -25,7 +25,7 @@
 #if SAVED_POSITIONS
 
 #include "../../../core/language.h"
-#include "../../module/planner.h"
+#include "../../../module/planner.h"
 #include "../../gcode.h"
 #include "../../../module/motion.h"
 
@@ -48,7 +48,7 @@ void GcodeSuite::G61(void) {
   #endif
 
   // No saved position? No axes being restored?
-  if (!TEST(saved_slots, slot) || !parser.seen("XYZ")) return;
+  if (!TEST(saved_slots[slot >> 3], slot & 0b00000111) || !parser.seen("XYZ")) return;
 
   // Apply any given feedrate over 0.0
   const float fr = parser.linearval('F');
diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp
index 6dbf940addcac0042c91190ee02d839434fa9dc3..50092406c5e77db621f546818948dda9dd8394ce 100644
--- a/Marlin/src/module/motion.cpp
+++ b/Marlin/src/module/motion.cpp
@@ -111,7 +111,7 @@ xyze_pos_t destination; // {0}
 
 // G60/G61 Position Save and Return
 #if SAVED_POSITIONS
-  uint8_t saved_slots;
+  uint8_t saved_slots[(SAVED_POSITIONS + 7) >> 3];
   xyz_pos_t stored_position[SAVED_POSITIONS];
 #endif
 
diff --git a/Marlin/src/module/motion.h b/Marlin/src/module/motion.h
index a30573e7973f396768ecb937d63874054f77406a..eafa5ca8492ae7d5d320799efd07f56f256ec7e7 100644
--- a/Marlin/src/module/motion.h
+++ b/Marlin/src/module/motion.h
@@ -67,7 +67,7 @@ extern xyze_pos_t current_position,  // High-level current tool position
 
 // G60/G61 Position Save and Return
 #if SAVED_POSITIONS
-  extern uint8_t saved_slots;
+  extern uint8_t saved_slots[(SAVED_POSITIONS + 7) >> 3];
   extern xyz_pos_t stored_position[SAVED_POSITIONS];
 #endif