diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 07456b54011..0dc6be11b08 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -309,6 +309,7 @@ var/list/department_radio_keys = list(
var/list/listening
listening = get_mobs_in_view(message_range, src)
+ var/list/onscreen = get_mobs_in_view(7, src)
for(var/mob/M in player_list)
if (!M.client)
continue //skip monkeys and leavers
@@ -379,12 +380,14 @@ var/list/department_radio_keys = list(
M:show_message("[src] talks into [used_radios.len ? used_radios[1] : "radio"]")
var/rendered = null
+
if (length(heard_a))
var/message_a = say_quote(message,speaking)
if (italics)
message_a = "[message_a]"
+ var/message_ghost = "[message_a]" // bold so ghosts know the person is in view.
rendered = "[GetVoice()][alt_name] [message_a]"
var/rendered2 = null
@@ -392,10 +395,14 @@ var/list/department_radio_keys = list(
//BEGIN TELEPORT CHANGES
if(!istype(M, /mob/new_player))
if(M && M.stat == DEAD)
- rendered2 = "[GetVoice()] [alt_name] (Follow) [message_a]"
+ if ((M.client.prefs.toggles & CHAT_GHOSTEARS) && M in onscreen)
+ rendered2 = "[GetVoice()] [alt_name] (Follow) [message_ghost]"
+ else
+ rendered2 = "[GetVoice()] [alt_name] (Follow) [message_a]"
M:show_message(rendered2, 2)
continue
//END CHANGES
+
if(hascall(M,"show_message"))
var/deaf_message = ""
var/deaf_type = 1