anchor.diff:  	anchored = FALSE
   	mouse_drag_pointer = MOUSE_ACTIVE_POINTER
   	var/mob/living/carbon/attached = null
  -	var/mode = 1 // 1 is injecting, 0 is taking blood.
  +	var/mode = IV_INJECTING
   	var/obj/item/weapon/reagent_containers/beaker = null
   	var/list/drip_containers = list(/obj/item/weapon/reagent_containers/blood,
  -											/obj/item/weapon/reagent_containers/food,
  -											/obj/item/weapon/reagent_containers/glass)
  +									/obj/item/weapon/reagent_containers/food,
  +									/obj/item/weapon/reagent_containers/glass)
   
   /obj/machinery/iv_drip/Initialize()
   	..()
   	update_icon()
   	drip_containers = typecacheof(drip_containers)
  +
  +/obj/machinery/iv_drip/Destroy()
  +	attached = null
  +	QDEL_NULL(beaker)
  +	return ..()
   
   /obj/machinery/iv_drip/update_icon()
   	if(attached)
  
positive.code: 
  
  /obj/machinery/iv_drip/attackby(obj/item/weapon/W, mob/user, params)
  	if (is_type_in_typecache(W, drip_containers))
  		if(!isnull(beaker))
  			to_chat(user, "<span class='warning'>There is already a reagent container loaded!</span>")
  			return
  		if(!user.drop_item())
  			return
  
  		W.loc = src
  		beaker = W
  		to_chat(user, "<span class='notice'>You attach \the [W] to \the [src].</span>")
  		update_icon()
  		return
  	else
  
negative.code: 			var/amount = beaker.reagents.maximum_volume - beaker.reagents.total_volume
  			amount = min(amount, 4)
  			// If the beaker is full, ping
  			if(!amount)
  				if(prob(5))
  					visible_message("[src] pings.")
  				return
  
  			// If the human is losing too much blood, beep.
  			if(attached.blood_volume < BLOOD_VOLUME_SAFE && prob(5))
  				visible_message("[src] beeps loudly.")
  				playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
  			attached.transfer_blood_to(beaker, amount)
  			update_icon()
  