anchor.diff:  
   	if(!istype(L,/list)) src << "Not a List."
   
  -	var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine", "poo", "icon", "icon_state")
  +	var/list/locked = list("vars", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine", "poo")
  +	var/list/ckey_edit = list("key", "ckey")
  +	var/list/icon_edit = list("icon", "icon_state", "overlays", "underlays")
   	var/list/names = sortList(L)
   
   	var/variable = input("Which var?","Var") as null|anything in names + "(ADD VAR)"
  
positive.code: 
  		if(param_var_name == "holder" || (param_var_name in locked))
  			if(!check_rights(R_DEBUG))	return
  
  		variable = param_var_name
  
  
negative.code: 		var_value = O.vars[variable]
  
  		if(variable == "holder" || (variable in locked))
  			if(!check_rights(R_DEBUG)) return
  		if(variable in ckey_edit)
  			if(!check_rights(R_SPAWN|R_DEBUG)) return
  		if(variable in icon_edit)
  			if(!check_rights(R_FUN|R_DEBUG)) return
  
  	if(!autodetect_class)
  
  