diff --git a/Marlin/src/module/endstops.cpp b/Marlin/src/module/endstops.cpp
index fb7a36ecb5cccfabe428de8ab11f5a3f8ed3579c..a7e2a57d6ebca038acaf042e6e7657b765b3f71d 100644
--- a/Marlin/src/module/endstops.cpp
+++ b/Marlin/src/module/endstops.cpp
@@ -279,12 +279,11 @@ void Endstops::not_homing() {
     // Otherwise reset 'live's variables to let axes move in both directions.
     if (!enabled) {
       #if ENDSTOP_NOISE_THRESHOLD
-        endstop_poll_count = validated_live_state = 0; // Stop filtering
+        endstop_poll_count = 0;   // Stop filtering (MUST be done first to prevent race condition)
+        validated_live_state = 0;
       #endif
       live_state = 0;
     }
-  //#else
-    // When in polling endstops are always kept in sync
   #endif
 }