diff --git a/Marlin/src/gcode/gcode.cpp b/Marlin/src/gcode/gcode.cpp index 75dc8f4b4..958c4e017 100644 --- a/Marlin/src/gcode/gcode.cpp +++ b/Marlin/src/gcode/gcode.cpp @@ -93,8 +93,10 @@ bool GcodeSuite::get_target_extruder_from_command() { */ void GcodeSuite::get_destination_from_command() { LOOP_XYZE(i) { - if (parser.seen(axis_codes[i])) - destination[i] = LOGICAL_TO_NATIVE(parser.value_axis_units((AxisEnum)i) + (axis_relative_modes[i] || relative_mode ? current_position[i] : 0), i); + if (parser.seen(axis_codes[i])) { + const float v = parser.value_axis_units((AxisEnum)i) + (axis_relative_modes[i] || relative_mode ? current_position[i] : 0); + destination[i] = i == E_AXIS ? v : LOGICAL_TO_NATIVE(v, i); + } else destination[i] = current_position[i]; }