diff --git a/Marlin/src/module/tool_change.cpp b/Marlin/src/module/tool_change.cpp
index d013c2c7a1f8d263a73d86bcdb77768066819bea..35c52cf7aef252b1769b6e36d9938d21d94ec912 100644
--- a/Marlin/src/module/tool_change.cpp
+++ b/Marlin/src/module/tool_change.cpp
@@ -352,6 +352,8 @@ inline void invalid_extruder_error(const uint8_t e) {
* previous tool out of the way and the new tool into place.
*/
void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool no_move/*=false*/) {
+ planner.synchronize();
+
#if ENABLED(MIXING_EXTRUDER) && MIXING_VIRTUAL_TOOLS > 1
mixing_tool_change(tmp_extruder);