anchor.diff:  
   	//remove reactants
   	for(var/B in cached_required_reagents)
  -		remove_reagent(B, (removeChemAmmount * cached_required_reagents[B]), safety = 1)
  +		remove_reagent(B, (removeChemAmmount * cached_required_reagents[B]), safety = 1, ignore_pH = TRUE)
   
   	//add product
   	var/TotalStep = 0
  
positive.code: 		var/amt = list_reagents[r_id]
  		add_reagent(r_id, amt, data)
  
  /datum/reagents/proc/remove_reagent(reagent, amount, safety)//Added a safety check for the trans_id_to
  
  	if(isnull(amount))
  		amount = 0
  
negative.code: 					multiplier = min(multiplier, round((get_reagent_amount(B) / cached_required_reagents[B]), 0.01))
  
  				for(var/B in cached_required_reagents)
  					remove_reagent(B, (multiplier * cached_required_reagents[B]), safety = 1, ignore_pH = TRUE)
  
  				for(var/P in selected_reaction.results)
  					multiplier = max(multiplier, 1) //this shouldnt happen ...
  