diff --git a/Marlin/src/module/motion.cpp b/Marlin/src/module/motion.cpp
index c5854d1f1545fe647691a611bd4f7ffe10f8a7fe..552dabb74e66bf1ddbfd8655dab6642daf54dc3d 100644
--- a/Marlin/src/module/motion.cpp
+++ b/Marlin/src/module/motion.cpp
@@ -424,7 +424,7 @@ void do_blocking_move_to_x(const float &rx, const float &fr_mm_s/*=0.0*/) {
   do_blocking_move_to(rx, current_position[Y_AXIS], current_position[Z_AXIS], fr_mm_s);
 }
 void do_blocking_move_to_y(const float &ry, const float &fr_mm_s/*=0.0*/) {
-  do_blocking_move_to(current_position[Y_AXIS], ry, current_position[Z_AXIS], fr_mm_s);
+  do_blocking_move_to(current_position[X_AXIS], ry, current_position[Z_AXIS], fr_mm_s);
 }
 void do_blocking_move_to_z(const float &rz, const float &fr_mm_s/*=0.0*/) {
   do_blocking_move_to(current_position[X_AXIS], current_position[Y_AXIS], rz, fr_mm_s);
diff --git a/Marlin/src/module/probe.cpp b/Marlin/src/module/probe.cpp
index d20257fa3255b952af4816ac7c939478ecb0cd63..8535bf854b8b8053cb3d4f8d2bfad56d443478ce 100644
--- a/Marlin/src/module/probe.cpp
+++ b/Marlin/src/module/probe.cpp
@@ -116,6 +116,9 @@ float zprobe_zoffset; // Initialized by settings.load()
     #if TOUCH_MI_DEPLOY_XPOS > X_MAX_BED
       TemporaryGlobalEndstopsState unlock_x(false);
     #endif
+    #if TOUCH_MI_DEPLOY_YPOS > Y_MAX_BED
+      TemporaryGlobalEndstopsState unlock_y(false);
+    #endif
 
     #if ENABLED(TOUCH_MI_MANUAL_DEPLOY)
 
@@ -132,10 +135,12 @@ float zprobe_zoffset; // Initialized by settings.load()
       ui.reset_status();
       ui.goto_screen(prev_screen);
 
+    #elif defined(TOUCH_MI_DEPLOY_XPOS) && defined(TOUCH_MI_DEPLOY_YPOS)
+      do_blocking_move_to_xy(TOUCH_MI_DEPLOY_XPOS, TOUCH_MI_DEPLOY_YPOS);
     #elif defined(TOUCH_MI_DEPLOY_XPOS)
-
       do_blocking_move_to_x(TOUCH_MI_DEPLOY_XPOS);
-
+    #elif defined(TOUCH_MI_DEPLOY_YPOS)
+      do_blocking_move_to_y(TOUCH_MI_DEPLOY_YPOS);
     #endif
   }