anchor.diff:  			updateUsrDialog()
   		else
   			user << "<span class='notice'>This cartridge is not yet ready for replacement! Use up the rest of the toner.</span>"
  +
   	else if(istype(O, /obj/item/weapon/wrench))
   		playsound(loc, 'sound/items/Ratchet.ogg', 50, 1)
  -		anchored = !anchored
  -		user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] [src].</span>"
  +		user << "<span class='warning'>You start [anchored ? "wrenching" : "unwrenching"] [src]</span>"
  +		if(do_after(20, user))
  +			if(gc_destroyed)
  +				return
  +			anchored = !anchored
  +			user << "<span class='notice'>You [anchored ? "wrench" : "unwrench"] [src].</span>"
  +
   	else if(istype(O, /obj/item/weapon/grab)) //For ass-copying.
   		var/obj/item/weapon/grab/G = O
   		if(ismob(G.affecting) && G.affecting != ass)
  -			var/mob/GM = G.affecting
  -			visible_message("<span class='warning'>[usr] drags [GM.name] onto the photocopier!</span>")
  -			GM.loc = get_turf(src)
  -			ass = GM
  -			if(photocopy)
  -				photocopy.loc = src.loc
  -				photocopy = null
  -			else if(copy)
  -				copy.loc = src.loc
  -				copy = null
  -			updateUsrDialog()
  +			MouseDrop_T(G.affecting, user)
   
   /obj/machinery/photocopier/ex_act(severity, target)
   	switch(severity)
  -		if(1.0)
  +		if(1)
   			qdel(src)
  -		if(2.0)
  +		if(2)
   			if(prob(50))
   				qdel(src)
   			else
  
positive.code: 			updateUsrDialog()
  		else
  			user << "<span class='notice'>There is already something in [src].</span>"
  	else if(istype(O, /obj/item/device/toner))
  		if(toner <= 0)
  			user.drop_item()
  
negative.code: 
  /obj/machinery/photocopier/MouseDrop_T(mob/target, mob/user)
  	check_ass() //Just to make sure that you can re-drag somebody onto it after they moved off.
  	if (!istype(target) || target.anchored || target.buckled || !Adjacent(user) || !Adjacent(target) || !user.canUseTopic(src, 1) || target == ass || copier_blocked())
  		return
  	src.add_fingerprint(user)
  	if(target == user)
  		visible_message("<span class='warning'>[user] starts climbing onto the photocopier!</span>")
  	else
  		visible_message("<span class='warning'>[user] starts putting [target] onto the photocopier!</span>")
  
  	if(do_after(user, 20))
  		if(!target || target.gc_destroyed || gc_destroyed || !Adjacent(target)) //check if the photocopier/target still exists.
  			return
  
  		if(target == user)
  			visible_message("<span class='warning'>[user] climbs onto the photocopier!</span>")
  		else
  			visible_message("<span class='warning'>[user] puts [target] onto the photocopier!</span>")
  
  		target.loc = get_turf(src)
  		ass = target
  
  		if(photocopy)
  			photocopy.loc = src.loc
  			visible_message("<span class='notice'>[photocopy] is shoved out of the way by [ass]!</span>")
  			photocopy = null
  
  		else if(copy)
  			copy.loc = src.loc
  			visible_message("<span class='notice'>[copy] is shoved out of the way by [ass]!</span>")
  			copy = null
  	updateUsrDialog()
  
  /obj/machinery/photocopier/proc/check_ass() //I'm not sure wether I made this proc because it's good form or because of the name.
  