anchor.diff:  					else
   						toppaper = null
   
  -		if(href_list["read"])
  +		else if(href_list["read"])
   			var/obj/item/weapon/paper/P = locate(href_list["read"])
  -			if(P)
  +			
  +			if(P && (P.loc == src) && (istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) )
  +			
   				if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
   					usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[stars(P.info)][P.stamps]</BODY></HTML>", "window=[P.name]")
   					onclose(usr, "[P.name]")
  
positive.code: 	if((usr.stat || usr.restrained()))
  		return
  
  	if(usr.contents.Find(src))
  
  		if(href_list["pen"])
  			if(haspen)
  
negative.code: 					usr << browse("<HTML><HEAD><TITLE>[P.name]</TITLE></HEAD><BODY>[P.info][P.stamps]</BODY></HTML>", "window=[P.name]")
  					onclose(usr, "[P.name]")
  
  		else if(href_list["look"])
  			var/obj/item/weapon/photo/P = locate(href_list["look"])
  			if(P && (P.loc == src) && (istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) )
  				P.show(usr)
  
  		else if(href_list["top"])
  			var/obj/item/P = locate(href_list["top"])
  			if(P && (P.loc == src) && (istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/photo)) )
  				toppaper = P
  				usr << "<span class='notice'>You move [P.name] to the top.</span>"
  
  		//Update everything
  		attack_self(usr)
  		update_icon()
  	return
  