diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 914576c5ee..9f023b0469 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -681,3 +681,16 @@ mob/dead/observer/MayRespawn(var/feedback = 0)
src << "antagHUD restrictions prevent you from respawning."
return 0
return 1
+
+/proc/ghost_follow_link(var/atom/target, var/atom/ghost)
+ if((!target) || (!ghost)) return
+ . = "follow"
+
+ if(istype(target, /mob/dead/observer))
+ var/mob/dead/observer/O = target
+ if(O.mind && O.mind.current)
+ . += "|body"
+ else if(istype(target, /mob)) // Eye follow links
+ var/mob/M = target
+ if(M.client && M.eyeobj) // No point following clientless eyes
+ . += "|eye"
diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index e5e91c4bdc..707334f4b4 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -55,7 +55,7 @@
return
if(speaker_name != speaker.real_name && speaker.real_name)
speaker_name = "[speaker.real_name] ([speaker_name])"
- track = "(follow) "
+ track = "([ghost_follow_link(speaker, src)]) "
if(client.prefs.toggles & CHAT_GHOSTEARS && speaker in view(src))
message = "[message]"
@@ -180,7 +180,7 @@
if(istype(src, /mob/dead/observer))
if(speaker_name != speaker.real_name && !isAI(speaker)) //Announce computer and various stuff that broadcasts doesn't use it's real name but AI's can't pretend to be other mobs.
speaker_name = "[speaker.real_name] ([speaker_name])"
- track = "[speaker_name] (follow)"
+ track = "[speaker_name] ([ghost_follow_link(speaker, src)])"
var/formatted
if(language)
diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm
index 79115b61b2..563c7c5551 100644
--- a/code/modules/mob/mob_helpers.dm
+++ b/code/modules/mob/mob_helpers.dm
@@ -555,7 +555,7 @@ proc/is_blind(A)
var/lname
if(subject)
if(subject != M)
- follow = "(follow) "
+ follow = "([ghost_follow_link(subject, M)]) "
if(M.stat != DEAD && M.client.holder)
follow = "(JMP) "
var/mob/dead/observer/DM