From 62834a1c43ad20fe815d52fef1d3c1944b81a609 Mon Sep 17 00:00:00 2001
From: Chris Roadfeldt <chris@roadfeldt.com>
Date: Sun, 29 Mar 2015 03:55:41 -0500
Subject: [PATCH] Don't deploy probe on Z Axis homing if Z_PROBE_AND_ENDSTOP is
 enabled, unless Z_SAFE_HOMING is.

---
 Marlin/Marlin_main.cpp | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index a020c6e0d52..520d4a6a50b 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -1493,20 +1493,18 @@ static void homeaxis(int axis) {
 
 
 #ifndef Z_PROBE_SLED
-    // Engage Servo endstop if enabled and we are not using Z_PROBE_AND_ENDSTOP
-    #ifndef Z_PROBE_AND_ENDSTOP
-      #ifdef SERVO_ENDSTOPS
-        #if SERVO_LEVELING
+    // Engage Servo endstop if enabled and we are not using Z_PROBE_AND_ENDSTOP unless we are using Z_SAFE_HOMING
+    #ifdef SERVO_ENDSTOPS && (defined (Z_SAFE_HOMING) || ! defined (Z_PROBE_AND_ENDSTOP))
+      #if SERVO_LEVELING
         if (axis==Z_AXIS) {
           engage_z_probe();
         }
       else
-        #endif
+      #endif
       if (servo_endstops[axis] > -1) {
         servos[servo_endstops[axis]].write(servo_endstop_angles[axis * 2]);
       }
-      #endif
-    #endif // Z_PROBE_AND_ENDSTOP
+    #endif
 #endif // Z_PROBE_SLED
     #ifdef Z_DUAL_ENDSTOPS
       if (axis==Z_AXIS) In_Homing_Process(true);