anchor.diff:  
   	var/reagent_id = null
   
  -	//Use whatever is inside the loaded beaker. If there is one.
  -	if((src.use_beaker) && (src.reagent_glass) && (src.reagent_glass.reagents.total_volume))
  -		reagent_id = "internal_beaker"
  -
   	if(src.emagged == 2) //Emagged! Time to poison everybody.
   		reagent_id = "toxin"
   
  -	var/virus = 0
  -	for(var/datum/disease/D in C.viruses)
  -		virus = 1
  -
  -	if (!reagent_id && (virus))
  -		if(!C.reagents.has_reagent(src.treatment_virus))
  -			reagent_id = src.treatment_virus
  -
  -	if (!reagent_id && (C.getBruteLoss() >= heal_threshold))
  -		if(!C.reagents.has_reagent(src.treatment_brute))
  -			reagent_id = src.treatment_brute
  -
  -	if (!reagent_id && (C.getOxyLoss() >= (15 + heal_threshold)))
  -		if(!C.reagents.has_reagent(src.treatment_oxy))
  -			reagent_id = src.treatment_oxy
  -
  -	if (!reagent_id && (C.getFireLoss() >= heal_threshold))
  -		if(!C.reagents.has_reagent(src.treatment_fire))
  -			reagent_id = src.treatment_fire
  -
  -	if (!reagent_id && (C.getToxLoss() >= heal_threshold))
  -		if(!C.reagents.has_reagent(src.treatment_tox))
  -			reagent_id = src.treatment_tox
  +	else
  +		var/virus = 0
  +		for(var/datum/disease/D in C.viruses)
  +			virus = 1
  +
  +		if (!reagent_id && (virus))
  +			if(!C.reagents.has_reagent(src.treatment_virus))
  +				reagent_id = src.treatment_virus
  +
  +		if (!reagent_id && (C.getBruteLoss() >= heal_threshold))
  +			if(!C.reagents.has_reagent(src.treatment_brute))
  +				reagent_id = src.treatment_brute
  +
  +		if (!reagent_id && (C.getOxyLoss() >= (15 + heal_threshold)))
  +			if(!C.reagents.has_reagent(src.treatment_oxy))
  +				reagent_id = src.treatment_oxy
  +
  +		if (!reagent_id && (C.getFireLoss() >= heal_threshold))
  +			if(!C.reagents.has_reagent(src.treatment_fire))
  +				reagent_id = src.treatment_fire
  +
  +		if (!reagent_id && (C.getToxLoss() >= heal_threshold))
  +			if(!C.reagents.has_reagent(src.treatment_tox))
  +				reagent_id = src.treatment_tox
  +
  +		//If the patient is injured but doesn't have our special reagent in them then we should give it to them first
  +		if(reagent_id && src.use_beaker && src.reagent_glass && src.reagent_glass.reagents.total_volume)
  +			for(var/datum/reagent/R in src.reagent_glass.reagents.reagent_list)
  +				if(!C.reagents.has_reagent(R.id))
  +					reagent_id = "internal_beaker"
  +					break
   
   	if(!reagent_id) //If they don't need any of that they're probably cured!
   		src.oldpatient = src.patient
  
positive.code: 	//If they're injured, we're using a beaker, and don't have one of our WONDERCHEMS.
  	if((src.reagent_glass) && (src.use_beaker) && ((C.getBruteLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getToxLoss() >= heal_threshold) || (C.getOxyLoss() >= (heal_threshold + 15))))
  		for(var/datum/reagent/R in src.reagent_glass.reagents.reagent_list)
  			if(!C.reagents.has_reagent(R))
  				return 1
  			continue
  
  	//They're injured enough for it!
  	if((C.getBruteLoss() >= heal_threshold) && (!C.reagents.has_reagent(src.treatment_brute)))
  
negative.code: 			src.currently_healing = 0
  			return
  
  	reagent_id = null
  	return
  
  