Index: firmware/App/Modes/Prime.c =================================================================== diff -u -r3fa496b611a3a84c8aaa882a1b27762c6bc0024c -rfbb77f3224d4ebe0aecf5aa0f43a753cb9a2c9cf --- firmware/App/Modes/Prime.c (.../Prime.c) (revision 3fa496b611a3a84c8aaa882a1b27762c6bc0024c) +++ firmware/App/Modes/Prime.c (.../Prime.c) (revision fbb77f3224d4ebe0aecf5aa0f43a753cb9a2c9cf) @@ -681,14 +681,17 @@ { HD_PRE_TREATMENT_PRIME_STATE_T state = HD_PRIME_SALINE_CIRC_BLOOD_CIRCUIT_STATE; - if ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) + if ( ( AIR_TRAP_LEVEL_AIR == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) && + ( ( BUBBLE_DETECTED == getBubbleStatus( ADV ) ) || ( TRUE == didTimeout( noAirDetectedStartTime, NO_AIR_DETECTED_COUNT ) ) ) ) { + signalBloodPumpHardStop(); purgeAirValvesBloodPumpControl(); purgeAirTimeOutStartTime = getMSTimerCount(); state = HD_PRIME_SALINE_PURGE_AIR_STATE; } - if ( TRUE == didTimeout( noAirDetectedStartTime, NO_AIR_DETECTED_COUNT ) ) + if ( ( TRUE == didTimeout( noAirDetectedStartTime, NO_AIR_DETECTED_COUNT ) ) && + ( AIR_TRAP_LEVEL_FLUID == getAirTrapLevel( AIR_TRAP_LEVEL_SENSOR_LOWER ) ) ) { signalBloodPumpHardStop(); state = HD_PRIME_RESERVOIR_ONE_FILL_COMPLETE_STATE;