From d25f0a5a21eff66fdab8f963765a44ceb8104d10 Mon Sep 17 00:00:00 2001
From: Studiodyne <diabolomix@hotmail.fr>
Date: Thu, 1 Mar 2018 09:59:42 +0100
Subject: [PATCH] Fix for Fwretract bugfix1.1.x  (#9872)

---
 Marlin/Configuration_adv.h | 3 ++-
 Marlin/Marlin_main.cpp     | 9 +--------
 2 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h
index a52835e149b..3220c2f15d9 100644
--- a/Marlin/Configuration_adv.h
+++ b/Marlin/Configuration_adv.h
@@ -856,7 +856,8 @@
  * With auto-retract enabled, all G1 E moves within the set range
  * will be converted to firmware-based retract/recover moves.
  *
- * Be sure to turn off auto-retract during filament change.
+ * Note: Be sure to turn off auto-retract during filament change.
+ * Note: Current status (Retract / Swap / Zlift) isn't reset by G28.
  *
  * Note that M207 / M208 / M209 settings are saved to EEPROM.
  *
diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp
index ae9d86b2a3a..2e7d55337ed 100644
--- a/Marlin/Marlin_main.cpp
+++ b/Marlin/Marlin_main.cpp
@@ -3122,12 +3122,6 @@ static void homeaxis(const AxisEnum axis) {
     if (axis == Z_AXIS && STOW_PROBE()) return;
   #endif
 
-  // Clear retracted status if homing the Z axis
-  #if ENABLED(FWRETRACT)
-    if (axis == Z_AXIS)
-      for (uint8_t i = 0; i < EXTRUDERS; i++) fwretract.retracted[i] = false;
-  #endif
-
   #if ENABLED(DEBUG_LEVELING_FEATURE)
     if (DEBUGGING(LEVELING)) {
       SERIAL_ECHOPAIR("<<< homeaxis(", axis_codes[axis]);
@@ -3474,8 +3468,7 @@ inline void gcode_G4() {
    */
   inline void gcode_G10() {
     #if EXTRUDERS > 1
-      const bool rs = parser.boolval('S');
-      fwretract.retracted_swap[active_extruder] = rs; // Use 'S' for swap, default to false
+      const bool rs = parser.boolval('S');      
     #endif
     fwretract.retract(true
       #if EXTRUDERS > 1