anchor.diff:  				var/datum/reagent/self = src
   				src = null										  //of the reagent to the mob on TOUCHING it.
   
  -				if(!istype(self.holder.my_atom, /obj/effect/effect/smoke/chem))
  -					// If the chemicals are in a smoke cloud, do not try to let the chemicals "penetrate" into the mob's system (balance station 13) -- Doohl
  -
  -					if(method == TOUCH)
  -
  -						var/chance = 1
  -						var/block  = 0
  -
  -						for(var/obj/item/clothing/C in M.get_equipped_items())
  -							if(C.permeability_coefficient < chance) chance = C.permeability_coefficient
  -							if(istype(C, /obj/item/clothing/suit/bio_suit))
  -								// bio suits are just about completely fool-proof - Doohl
  -								// kind of a hacky way of making bio suits more resistant to chemicals but w/e
  -								if(prob(75))
  -									block = 1
  -
  -							if(istype(C, /obj/item/clothing/head/bio_hood))
  -								if(prob(75))
  -									block = 1
  -
  -						chance = chance * 100
  -
  -						if(prob(chance) && !block)
  -							if(M.reagents)
  -								M.reagents.add_reagent(self.id,self.volume/2)
  +				if(self.holder)		//for catching rare runtimes
  +					if(!istype(self.holder.my_atom, /obj/effect/effect/smoke/chem))
  +						// If the chemicals are in a smoke cloud, do not try to let the chemicals "penetrate" into the mob's system (balance station 13) -- Doohl
  +
  +						if(method == TOUCH)
  +
  +							var/chance = 1
  +							var/block  = 0
  +
  +							for(var/obj/item/clothing/C in M.get_equipped_items())
  +								if(C.permeability_coefficient < chance) chance = C.permeability_coefficient
  +								if(istype(C, /obj/item/clothing/suit/bio_suit))
  +									// bio suits are just about completely fool-proof - Doohl
  +									// kind of a hacky way of making bio suits more resistant to chemicals but w/e
  +									if(prob(75))
  +										block = 1
  +
  +								if(istype(C, /obj/item/clothing/head/bio_hood))
  +									if(prob(75))
  +										block = 1
  +
  +							chance = chance * 100
  +
  +							if(prob(chance) && !block)
  +								if(M.reagents)
  +									M.reagents.add_reagent(self.id,self.volume/2)
   				return 1
   
   			reaction_obj(var/obj/O, var/volume) //By default we transfer a small part of the reagent to the object
  
positive.code: 		hot_coco
  			name = "Hot Chocolate"
  			id = "hot_coco"
  			description = "Made with love! And coco beans."
  			reagent_state = LIQUID
  			nutriment_factor = 2 * REAGENTS_METABOLISM
  			color = "#403010" // rgb: 64, 48, 16
  
negative.code: 						O.clean_blood()
  			reaction_turf(var/turf/T, var/volume)
  				if(volume >= 1)
  					T.clean_blood()
  					for(var/obj/effect/decal/cleanable/C in src)
  						del(C)
  