anchor.diff:  
   
   		if(. == WORN)
  -
   			for(var/obj/items/wearable/pets/P in owner.Lwearing)
  -				if(P != src)
  +				if(src != P)
   					P.Equip(owner,1,1)
  +					owner.pet = null
  +					break
  +
  +			if(dropable)
  +				dropable = 0
  +				verbs   -= /obj/items/verb/Drop
   
   			if(!owner.pet)
  -
  -				if(dropable)
  -					dropable = 0
  -					verbs   -= /obj/items/verb/Drop
  -
   				owner.pet = new (get_step(owner, owner.dir), src)
   				owner.pet.owner = owner.ckey
  -
  -				if(!overridetext) hearers(owner) << infomsg("[owner] pets \his [src.name].")
  +				owner.pet.alpha = 0
  +
  +			animate(owner.pet, alpha = alpha, time = 5)
  +
  +			if(!overridetext) hearers(owner) << infomsg("[owner] pets \his [src.name].")
   
   		else if(. == REMOVED || forceremove)
   
  -			owner.pet.Dispose()
  -			owner.pet = null
  +			owner.pet.Dispose(owner)
   
   			if(!overridetext) hearers(owner) << infomsg("[owner] puts \his [src.name] away.")
   
  
positive.code: 				loc = p.loc
  
  			else if(d > 3)
  				step_towards(src, p)
  
  			if(light)
  				light.loc = loc
  
  		else
  			dir = get_dir(loc, oldLoc)
  			loc = oldLoc
  
  			var/offset = (iconSize - 1) * -16
  
  			if(dir & EAST)
  				pixel_x = offset - (item.currentSize - 1) * 4
  			else if(dir & WEST)
  				pixel_x = offset + (item.currentSize - 1) * 4
  			else
  				pixel_x = offset
  
  			if(dir & NORTH)
  				pixel_y = offset - (item.currentSize - 1) * 4
  			else if(dir & SOUTH)
  				pixel_y = offset + (item.currentSize - 1) * 16
  			else
  				pixel_y = offset
  
  
negative.code: 		icon_state = "pixie"
  	dog
  		icon_state = "dog"
  	snake
  		icon_state = "snake"
  	wolf
  		icon_state = "wolf"
  	troll
  		icon_state = "troll"
  	acromantula
  