diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index 035b33af01ccbd06afb93ef241fa392e64fa942a..e32d964aab4ba49f760630dddd031523ad03f90b 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -3832,16 +3832,21 @@ inline void gcode_G92() {
LOOP_XYZE(i) {
if (code_seen(axis_codes[i])) {
- float p = current_position[i],
- v = code_value_axis_units(i);
+ #if IS_SCARA
+ current_position[i] = code_value_axis_units(i);
+ if (i != E_AXIS) didXYZ = true;
+ #else
+ float p = current_position[i],
+ v = code_value_axis_units(i);
- current_position[i] = v;
+ current_position[i] = v;
- if (i != E_AXIS) {
- position_shift[i] += v - p; // Offset the coordinate space
- update_software_endstops((AxisEnum)i);
- didXYZ = true;
- }
+ if (i != E_AXIS) {
+ didXYZ = true;
+ position_shift[i] += v - p; // Offset the coordinate space
+ update_software_endstops((AxisEnum)i);
+ }
+ #endif
}
}
if (didXYZ)