diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index 899d3f1a47a..d1636ce20d3 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -242,6 +242,8 @@
#define STATUS_EFFECT_UNBUCKLE /datum/status_effect/action_status_effect/unbuckle
#define STATUS_EFFECT_EXIT_CRYOCELL /datum/status_effect/action_status_effect/exit_cryocell
+#define STATUS_EFFECT_REVIVE_NOTICE /datum/status_effect/revive_notice_delay
+
//////////////////////////
// Mind batter variants //
//////////////////////////
diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm
index ce37ee076c9..868afa9f971 100644
--- a/code/datums/status_effects/neutral.dm
+++ b/code/datums/status_effects/neutral.dm
@@ -412,3 +412,8 @@
/datum/status_effect/action_status_effect/exit_cryocell
id = "exit_cryocell"
+
+/datum/status_effect/revive_notice_delay
+ id = "revive_notice_delay"
+ alert_type = null
+ duration = 15 SECONDS
diff --git a/code/modules/mob/dead/observer/observer_base.dm b/code/modules/mob/dead/observer/observer_base.dm
index c922ff671ab..d40ef61a12f 100644
--- a/code/modules/mob/dead/observer/observer_base.dm
+++ b/code/modules/mob/dead/observer/observer_base.dm
@@ -298,6 +298,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
mind.current.key = key
+ mind.current.update_stat()
SEND_SIGNAL(mind.current, COMSIG_LIVING_REENTERED_BODY)
return TRUE
diff --git a/code/modules/mob/living/carbon/human/human_update_status.dm b/code/modules/mob/living/carbon/human/human_update_status.dm
index fa6516724fa..62d46127365 100644
--- a/code/modules/mob/living/carbon/human/human_update_status.dm
+++ b/code/modules/mob/living/carbon/human/human_update_status.dm
@@ -8,10 +8,22 @@
if(B)
if((health >= (HEALTH_THRESHOLD_DEAD + HEALTH_THRESHOLD_CRIT) * 0.5) && ipc_vital_organ_check() && !suiciding)
var/mob/dead/observer/ghost = get_ghost()
+ if(!client && !check_ghost_client() && !key)
+ if(!has_status_effect(STATUS_EFFECT_REVIVE_NOTICE))
+ visible_message("[src]'[p_s()] posibrain fails its power-on self-test. Any recovery from this state is unlikely.")
+ apply_status_effect(STATUS_EFFECT_REVIVE_NOTICE)
+ return
+
if(ghost)
- to_chat(ghost, "Your chassis has been repaired and repowered, re-enter if you want to continue playing! (Verbs -> Ghost -> Re-enter corpse)")
- SEND_SOUND(ghost, sound('sound/effects/genetics.ogg'))
+ if(!has_status_effect(STATUS_EFFECT_REVIVE_NOTICE))
+ to_chat(ghost, "Your chassis has been repaired and repowered, re-enter if you want to continue playing! (Verbs -> Ghost -> Re-enter corpse)")
+ SEND_SOUND(ghost, sound('sound/effects/genetics.ogg'))
+ visible_message("[src]'[p_s()] posibrain buffers...")
+ apply_status_effect(STATUS_EFFECT_REVIVE_NOTICE)
+ return
+
update_revive()
+ emote("me", EMOTE_AUDIBLE, "chimes as [p_they()] reactivate[p_s()]!")
create_debug_log("revived from healing, trigger reason: [reason]")
/mob/living/carbon/human/update_nearsighted_effects()