diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp
index 0af205695b..b392e751d5 100644
--- a/Marlin/src/module/tool_change.cpp
+++ b/Marlin/src/module/tool_change.cpp
@@ -906,7 +906,7 @@ void tool_change(const uint8_t new_tool, bool no_move/*=false*/) {
       #endif
 
       #if HAS_HOTEND_OFFSET
-        xyz_pos_t diff = hotend_offset[new_tool];
+        xyz_pos_t diff = hotend_offset[new_tool] - hotend_offset[old_tool];
         #if ENABLED(DUAL_X_CARRIAGE)
           diff.x = 0;
         #endif