diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index d7e1f172fa3..588b5cc26c1 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -1764,6 +1764,11 @@
return G
break
+/datum/mind/proc/check_ghost_client()
+ var/mob/dead/observer/G = get_ghost()
+ if(G.client)
+ return TRUE
+
/datum/mind/proc/grab_ghost(force)
var/mob/dead/observer/G = get_ghost(even_if_they_cant_reenter = force)
. = G
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 2fd600384d0..cc96cb02de2 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -205,14 +205,11 @@
// To the right of health bar
if(stat == DEAD || HAS_TRAIT(src, TRAIT_FAKEDEATH))
var/revivable_state = "dead"
- if(!ghost_can_reenter()) // DNR or AntagHUD
- revivable_state = "dead"
- else if(ismachineperson(src) || (timeofdeath && is_revivable()))
- revivable_state = "flatline"
- else if(!mind)
- revivable_state = "dead"
- else if(get_ghost() || key)
- revivable_state = "hassoul"
+ if(ghost_can_reenter()) // Not DNR or AntagHUD
+ if((ismachineperson(src) && client) || (!ismachineperson(src) && timeofdeath && is_revivable()))
+ revivable_state = "flatline"
+ else if(get_ghost() || key)
+ revivable_state = "hassoul"
holder.icon_state = "hud[revivable_state]"
diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm
index 2401baf1d7f..4a467dcaaae 100644
--- a/code/modules/mob/living/carbon/examine.dm
+++ b/code/modules/mob/living/carbon/examine.dm
@@ -252,8 +252,10 @@
if(suiciding)
msg += "[p_they(TRUE)] appear[p_s()] to have committed suicide... there is no hope of recovery.\n"
if(!just_sleeping)
- msg += "[p_they(TRUE)] [p_are()] limp and unresponsive; there are no signs of life"
+ msg += "[p_they(TRUE)] [p_are()] limp and unresponsive"
if(get_int_organ(/obj/item/organ/internal/brain) && !key)
+ if(!check_ghost_client())
+ msg += "; there are no signs of life"
if(!get_ghost())
msg += " and [p_their()] soul has departed"
msg += "...\n"
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 2c1824e08ce..c7baee3ac6d 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1108,6 +1108,10 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \
if(mind)
return mind.get_ghost(even_if_they_cant_reenter)
+/mob/proc/check_ghost_client()
+ if(mind)
+ return mind.check_ghost_client()
+
/mob/proc/grab_ghost(force)
if(mind)
return mind.grab_ghost(force = force)
diff --git a/code/modules/surgery/organs/brain.dm b/code/modules/surgery/organs/brain.dm
index 1d10345d7bd..c1e52871a9b 100644
--- a/code/modules/surgery/organs/brain.dm
+++ b/code/modules/surgery/organs/brain.dm
@@ -61,7 +61,7 @@
. += "You can feel a bright spark of life in this one!"
return
if(brainmob?.mind)
- if(brainmob.get_ghost())
+ if(brainmob.check_ghost_client())
. += "You can feel the small spark of life still left in this one."
return