Index: firmware/App/Controllers/DrainPump.c =================================================================== diff -u -ra3ee6d44d7eb0a1f96772c634ac243d4899419d3 -r803e7a80f5e7f0df8e160d2d4cb7e4ec7113950d --- firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision a3ee6d44d7eb0a1f96772c634ac243d4899419d3) +++ firmware/App/Controllers/DrainPump.c (.../DrainPump.c) (revision 803e7a80f5e7f0df8e160d2d4cb7e4ec7113950d) @@ -354,7 +354,7 @@ // The RPM is only checked in open loop state that the pump is run at a fixed RPM. // The persistent alarm waits for a couple of seconds before raising an alarm, this is supposed to cover // when the pump is turned on and it takes a while to ramp up to target RPM. - else if ( PUMP_CONTROL_MODE_OPEN_LOOP == drainPumpControlModeSet ) + else if ( ( PUMP_CONTROL_MODE_OPEN_LOOP == drainPumpControlModeSet ) && ( DRAIN_PUMP_OPEN_LOOP_STATE == drainPumpState ) ) { // Using abs since the read RPM can be above or below the target U32 rpmDiff = abs( getDrainPumpTargetRPM() - getDrainPumpMeasuredRPM() );