diff --git a/Marlin/src/feature/runout.h b/Marlin/src/feature/runout.h
index d27629d9a7d9e87ed36a0674c3e4913db1d34fb2..3cba6f828e6a4cd0faac753a5cdc849e6884a623 100644
--- a/Marlin/src/feature/runout.h
+++ b/Marlin/src/feature/runout.h
@@ -148,7 +148,11 @@ class FilamentSensorBase {
 
     // Return a bitmask of runout flag states (1 bits always indicates runout)
     static inline uint8_t poll_runout_states() {
-      return poll_runout_pins() ^ uint8_t(TERN(FIL_RUNOUT_STATE, 0, _BV(NUM_RUNOUT_SENSORS) - 1));
+      return poll_runout_pins()
+        #if FIL_RUNOUT_STATE == LOW
+          ^ uint8_t(_BV(NUM_RUNOUT_SENSORS) - 1)
+        #endif
+      ;
     }
 };