Index: firmware/App/Controllers/DialInFlow.c =================================================================== diff -u -rd28280f1054fc9ddf9304a11373dc9ee963425e3 -re4131199548581bbdb3555441ce8f6328c45079b --- firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision d28280f1054fc9ddf9304a11373dc9ee963425e3) +++ firmware/App/Controllers/DialInFlow.c (.../DialInFlow.c) (revision e4131199548581bbdb3555441ce8f6328c45079b) @@ -275,7 +275,7 @@ S32 dirFlowRate = ( dir == MOTOR_DIR_FORWARD ? (S32)flowRate : (S32)flowRate * -1 ); // Don't interrupt pump control unless rate or mode is changing - if ( ( dirFlowRate != targetDialInFlowRate ) || ( mode != dialInPumpControlMode ) ) + if ( ( dirFlowRate != targetDialInFlowRate ) || ( mode != dialInPumpControlMode ) || ( fabs(pwm) > NEARLY_ZERO ) ) { BOOL isFlowRateInRange = ( flowRate <= MAX_DIAL_IN_FLOW_RATE ? TRUE : FALSE ); Index: firmware/App/Modes/Dialysis.c =================================================================== diff -u -rd28280f1054fc9ddf9304a11373dc9ee963425e3 -re4131199548581bbdb3555441ce8f6328c45079b --- firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision d28280f1054fc9ddf9304a11373dc9ee963425e3) +++ firmware/App/Modes/Dialysis.c (.../Dialysis.c) (revision e4131199548581bbdb3555441ce8f6328c45079b) @@ -345,9 +345,9 @@ void stopDialysis( void ) { // Stop pumps - setBloodPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); - setDialInPumpTargetFlowRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP, 0.0F ); - setDialOutPumpTargetRate( 0, MOTOR_DIR_FORWARD, PUMP_CONTROL_MODE_CLOSED_LOOP ); + signalDialInPumpHardStop(); + signalDialOutPumpHardStop(); + signalBloodPumpHardStop(); stopSyringePump(); // Tell DG to stop heating dialysate cmdStopDGTrimmerHeater();