Index: firmware/App/Modes/Rinseback.c =================================================================== diff -u -r98cc51d12256e9e9d63632d0206e9cd6e5b92429 -rf96b7660aca9960e02a44961bca8a006550760d6 --- firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision 98cc51d12256e9e9d63632d0206e9cd6e5b92429) +++ firmware/App/Modes/Rinseback.c (.../Rinseback.c) (revision f96b7660aca9960e02a44961bca8a006550760d6) @@ -1051,19 +1051,26 @@ data.targetRinsebackVolumeMl = rinsebackTargetVolume_mL; rinsebackPublishTimerCtr = 0; // If we have completed rinseback, timeout is no longer in force - indicate by zeroing timeout. Also include any additionals to target. + data.timeout = 0; + data.countdown = 0; if ( ( rinsebackState > RINSEBACK_PAUSED_STATE ) && ( getRinsebackVolume() >= rinsebackTargetVolume_mL ) ) { data.targetRinsebackVolumeMl = targetRinsebackVolumePlusAdditional_mL; - timeout = 0; } data.deliveredRinsebackVolumeMl = getRinsebackVolume(); data.rinsebackFlowRateMlMin = rinsebackRate_mL_min; if ( RINSEBACK_RUN_ADDITIONAL_STATE == rinsebackState ) { data.rinsebackFlowRateMlMin = DEFAULT_RINSEBACK_FLOW_RATE_ML_MIN; } - data.timeout = timeout; - data.countdown = countdown; + if ( getRinsebackCompleted() != TRUE ) + { + if ( rinsebackTimerCtr > 0 ) // Timer set to zero when BP is running + { + data.timeout = timeout; + data.countdown = countdown; + } + } if ( data.deliveredRinsebackVolumeMl >= rinsebackTargetVolume_mL ) { data.isCompleted = TRUE;