anchor.diff:  	//we don't use message_admins here because the sender/receiver might get it too
   	for(var/client/X in admins)
   		//check client/X is an admin and isn't the sender or recipient
  -		//only admins can see PMs
  +		if(X == C || X == src)
  +			continue
   		if(X.key!=key && X.key!=C.key && (X.holder.rights & R_ADMIN) || (X.holder.rights & R_MOD) )
   			X << "<B><font color='blue'>PM: [key_name(src, X, 0)]-&gt;[key_name(C, X, 0)]:</B> \blue [msg]</font>" //inform X
  
positive.code: 						adminhelp(reply)													//sender has left, adminhelp instead
  				return
  
  	C << recieve_message
  	src << "<font color='blue'>[send_pm_type] PM to-<b>[key_name(C, src, 1)]</b>: [msg]</font>"
  
  	/*if(holder && !C.holder)
  		C.last_pm_recieved = world.time
  
negative.code: 		src << "<font color='red'>Error: Admin-PM: Non-admin to non-admin PM communication is forbidden.</font>"
  		return
  
  	var/recieve_message = ""
  
  	if(holder && !C.holder)
  		recieve_message = "<font color='[recieve_color]' size='4'><b>-- Administrator private message --</b></font>\n"
  
  		//AdminPM popup for ApocStation and anybody else who wants to use it. Set it with POPUP_ADMIN_PM in config.txt ~Carn
  		if(config.popup_admin_pm)
  			spawn(0)	//so we don't hold the caller proc up
  				var/sender = src
  				var/sendername = key
  				var/reply = input(C, msg,"[recieve_pm_type] PM from-[sendername]", "") as text|null		//show message and await a reply
  				if(C && reply)
  					if(sender)
  						C.cmd_admin_pm(sender,reply)										//sender is still about, let's reply to them
  