Index: firmware/App/Controllers/BloodFlow.c =================================================================== diff -u -rb53596a43fea192dd950bbd7829519587199acdd -rcc83f1a731c6e5d149bd2822dc0ae45463295c5a --- firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision b53596a43fea192dd950bbd7829519587199acdd) +++ firmware/App/Controllers/BloodFlow.c (.../BloodFlow.c) (revision cc83f1a731c6e5d149bd2822dc0ae45463295c5a) @@ -306,7 +306,13 @@ { resetBloodPumpRPMMovingAverage(); targetBloodFlowRate = dirFlowRate; - bloodPumpDirectionSet = dir; + + // This is for Preserving the current direction while ramping down to a stop. A zero request does not represent a new direction. + if ( flowRate != 0 ) + { + bloodPumpDirectionSet = dir; + } + bloodPumpControlMode = mode; bloodPumpRampToSpeedRPM = BP_RPM_FROM_RATE( flowRate );