diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp
index 37d2adf20a8268856f60087ba434a1e8a11a681c..aa163e22f16a4fa30a4190e89b2d75b4d620160f 100644
--- a/Marlin/planner.cpp
+++ b/Marlin/planner.cpp
@@ -1418,7 +1418,7 @@ void Planner::set_position_mm_kinematic(const float position[NUM_AXIS]) {
 void Planner::sync_from_steppers() {
   LOOP_XYZE(i) position[i] = stepper.position((AxisEnum)i);
   #if ENABLED(LIN_ADVANCE)
-    LOOP_XYZE(i) position_float[i] = stepper.position((AxisEnum)i) * steps_to_mm[i];
+    LOOP_XYZE(i) position_float[i] = stepper.position((AxisEnum)i) * (i == E_AXIS ? steps_to_mm[E_AXIS + active_extruder] : steps_to_mm[i]);
   #endif
 }