anchor.diff:  		atoms.Add(the_turf);
   		// As well as anything that isn't invisible.
   		for(var/atom/A in the_turf)
  -			var/obj/effect/spookyghost/SPOOK
   			if(A.invisibility )
   				if(see_ghosts && istype(A,/mob/dead/observer))
   					var/mob/dead/observer/O = A
  -					if(O.following) //so you dont see ghosts following people like antags, etc.
  +					if(O.following)
   						continue
  -					else
  -						SPOOK = new(A.loc)
  -						A = SPOOK
  -				else
  +					atoms.Add(image('icons/mob/mob.dmi', O, "ghost", 4, SOUTH))
  +				else//its not a ghost
   					continue
  -			atoms.Add(A)
  -			if(SPOOK)
  -				qdel(SPOOK)
  +			else//not invisable, not a spookyghost add it.
  +				atoms.Add(A)
  +
   
   	// Sort the atoms into their layers
   	var/list/sorted = sort_atoms_by_layer(atoms)
  
positive.code: 	name = "camera obscura"
  	desc = "A polaroid camera, some say it can see ghosts!"
  	see_ghosts = 1
  /////spooky helpers!/////
  /obj/effect/spookyghost
  	name = "Spooky Ghost"
  	desc = "It's a g-g-g-g-ghooooost!" //jinkies!
  	icon = 'icons/mob/mob.dmi'
  	icon_state = "ghost"
  	layer = 4
  	density = 0
  	anchored = 1	//  don't get pushed around
  	invisibility = INVISIBILITY_OBSERVER
  
  /obj/item/device/camera/verb/change_size()
  	set name = "Set Photo Focus"
  
negative.code: 	user << "<span class='notice'>[pictures_left] photos left.</span>"
  	icon_state = icon_off
  	on = 0
  	if(user.mind && !(user.mind.assigned_role == "Chaplain"))
  		if(prob(24))
  			handle_haunt(user)
  	spawn(64)
  		icon_state = icon_on
  		on = 1
  