diff --git a/code/controllers/subsystems/transcore_vr.dm b/code/controllers/subsystems/transcore_vr.dm
index ebf47439d68..86ffac6b06a 100644
--- a/code/controllers/subsystems/transcore_vr.dm
+++ b/code/controllers/subsystems/transcore_vr.dm
@@ -114,7 +114,7 @@ SUBSYSTEM_DEF(transcore)
else
if(curr_MR.dead_state != MR_DEAD) //First time switching to dead
if(curr_MR.do_notify)
- db.notify(curr_MR.mindname)
+ db.notify(curr_MR)
curr_MR.last_notification = world.time
curr_MR.dead_state = MR_DEAD
@@ -250,10 +250,15 @@ SUBSYSTEM_DEF(transcore)
return 1
-// Send a past-due notification to the medical radio channel.
-/datum/transcore_db/proc/notify(var/name)
- ASSERT(name)
- global_announcer.autosay("[name] is past-due for a mind backup.", "TransCore Oversight", "Medical")
+// Send a past-due notification to the proper radio channel.
+/datum/transcore_db/proc/notify(var/datum/transhuman/mind_record/MR)
+ ASSERT(MR)
+ var/datum/transcore_db/db = SStranscore.db_by_mind_name(MR.mindname)
+ var/datum/transhuman/body_record/BR = db.body_scans[MR.mindname]
+ if(!BR)
+ global_announcer.autosay("[MR.mindname] is past-due for a mind backup, but lacks a corresponding body record." "TransCore Oversight", "Medical")
+ return
+ global_announcer.autosay("[MR.mindname] is past-due for a mind backup.", "TransCore Oversight", BR.synthetic ? "Science" : "Medical")
// Called from mind_record to add itself to the transcore.
/datum/transcore_db/proc/add_backup(var/datum/transhuman/mind_record/MR)
diff --git a/code/modules/mob/dead/observer/observer_vr.dm b/code/modules/mob/dead/observer/observer_vr.dm
index df68f41851c..1fb9d913c94 100644
--- a/code/modules/mob/dead/observer/observer_vr.dm
+++ b/code/modules/mob/dead/observer/observer_vr.dm
@@ -73,7 +73,7 @@
else if((world.time - record.last_notification) < 5 MINUTES)
to_chat(src, "Too little time has passed since your last notification.")
else
- db.notify(record.mindname)
+ db.notify(record)
record.last_notification = world.time
to_chat(src, "New notification has been sent.")
else