diff --git a/Marlin/src/gcode/geometry/G92.cpp b/Marlin/src/gcode/geometry/G92.cpp
index 75a0c03ae5dac10e95798c3cfc5c083ef15bbe7b..01d42f7c239fe607bb64f90b9057907298b60700 100644
--- a/Marlin/src/gcode/geometry/G92.cpp
+++ b/Marlin/src/gcode/geometry/G92.cpp
@@ -67,7 +67,11 @@ void GcodeSuite::G92() {
         LOOP_XYZE(i) {
           if (parser.seenval(axis_codes[i])) {
             current_position[i] = parser.value_axis_units((AxisEnum)i);
-            if (i == E_AXIS) didE = true; else didXYZ = true;
+            #if IS_SCARA || !HAS_POSITION_SHIFT
+              if (i == E_AXIS) didE = true; else didXYZ = true;
+            #elif HAS_POSITION_SHIFT
+              if (i == E_AXIS) didE = true;
+            #endif
           }
         }
       } break;