anchor.diff:  
   	for(var/obj/machinery/airalarm/AA in GLOB.machines)
   		var/area/A = get_area(AA)
  +		if(!A) //Make sure the target isn't inside an object, which results in runtimes.
  +			dat += "Skipped over [AA] in invalid location, [AA.loc].<br>"
  +			continue
   		if(!(A.type in areas_with_air_alarm))
   			areas_with_air_alarm.Add(A.type)
   
   	for(var/obj/machinery/requests_console/RC in GLOB.machines)
   		var/area/A = get_area(RC)
  +		if(!A)
  +			dat += "Skipped over [RC] in invalid location, [RC.loc].<br>"
  +			continue
   		if(!(A.type in areas_with_RC))
   			areas_with_RC.Add(A.type)
   
   	for(var/obj/machinery/light/L in GLOB.machines)
   		var/area/A = get_area(L)
  +		if(!A)
  +			dat += "Skipped over [L] in invalid location, [L.loc].<br>"
  +			continue
   		if(!(A.type in areas_with_light))
   			areas_with_light.Add(A.type)
   
   	for(var/obj/machinery/light_switch/LS in GLOB.machines)
   		var/area/A = get_area(LS)
  +		if(!A)
  +			dat += "Skipped over [LS] in invalid location, [LS.loc].<br>"
  +			continue
   		if(!(A.type in areas_with_LS))
   			areas_with_LS.Add(A.type)
   
   	for(var/obj/item/device/radio/intercom/I in GLOB.machines)
   		var/area/A = get_area(I)
  +		if(!A)
  +			dat += "Skipped over [I] in invalid location, [I.loc].<br>"
  +			continue
   		if(!(A.type in areas_with_intercom))
   			areas_with_intercom.Add(A.type)
   
   	for(var/obj/machinery/camera/C in GLOB.machines)
   		var/area/A = get_area(C)
  +		if(!A)
  +			dat += "Skipped over [C] in invalid location, [C.loc].<br>"
  +			continue
   		if(!(A.type in areas_with_camera))
   			areas_with_camera.Add(A.type)
   
  
positive.code: 	set category = "Mapping"
  	set name = "Test Areas"
  
  	var/list/areas_all = list()
  	var/list/areas_with_APC = list()
  	var/list/areas_with_multiple_APCs = list()
  
negative.code: 	var/list/areas_without_camera = areas_all - areas_with_camera
  
  	if(areas_without_APC.len)
  		dat += "<h1>AREAS WITHOUT AN APC:</h1>"
  		for(var/areatype in areas_without_APC)
  			dat += "[areatype]<br>"
  
  	if(areas_with_multiple_APCs.len)
  		dat += "<h1>AREAS WITH MULTIPLE APCS:</h1>"
  		for(var/areatype in areas_with_multiple_APCs)
  			dat += "[areatype]<br>"
  
  	if(areas_without_air_alarm.len)
  		dat += "<h1>AREAS WITHOUT AN AIR ALARM:</h1>"
  		for(var/areatype in areas_without_air_alarm)
  			dat += "[areatype]<br>"
  
  	if(areas_without_RC.len)
  		dat += "<h1>AREAS WITHOUT A REQUEST CONSOLE:</h1>"
  		for(var/areatype in areas_without_RC)
  			dat += "[areatype]<br>"
  
  	if(areas_without_light.len)
  		dat += "<h1>AREAS WITHOUT ANY LIGHTS:</h1>"
  		for(var/areatype in areas_without_light)
  			dat += "[areatype]<br>"
  
  	if(areas_without_LS.len)
  		dat += "<h1>AREAS WITHOUT A LIGHT SWITCH:</h1>"
  		for(var/areatype in areas_without_LS)
  			dat += "[areatype]<br>"
  
  	if(areas_without_intercom.len)
  		dat += "<h1>AREAS WITHOUT ANY INTERCOMS:</h1>"
  		for(var/areatype in areas_without_intercom)
  			dat += "[areatype]<br>"
  
  	if(areas_without_camera.len)
  		dat += "<h1>AREAS WITHOUT ANY CAMERAS:</h1>"
  		for(var/areatype in areas_without_camera)
  			dat += "[areatype]<br>"
  
  	if(!(areas_with_APC.len || areas_with_multiple_APCs.len || areas_with_air_alarm.len || areas_with_RC.len || areas_with_light.len || areas_with_LS.len || areas_with_intercom.len || areas_with_camera.len))
  		dat += "<b>No problem areas!</b>"
  
  	var/datum/browser/popup = new(usr, "testareas", "Test Areas", 500, 750)
  	popup.set_content(dat.Join())
  	popup.open()
  
  
  /client/proc/cmd_admin_areatest_station()
  	set category = "Mapping"
  