diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index 2cc11095602..0c7c99f3fdb 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -71,7 +71,7 @@ var/list/department_radio_keys = list(
":ï" = "changeling", "#ï" = "changeling", ".ï" = "changeling"
)
-/mob/living/proc/binarycheck()
+/mob/proc/binarycheck()
return 0
/mob/living/say(message, bubble_type)
diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm
index 574a739793d..662c92dabd1 100644
--- a/code/modules/mob/living/silicon/say.dm
+++ b/code/modules/mob/living/silicon/say.dm
@@ -9,14 +9,13 @@
desig = trim_left(S.designation + " " + S.job)
var/message_a = say_quote(message)
var/rendered = "Robotic Talk, [name] [message_a]"
-
- for (var/mob/living/S in living_mob_list)
- if(S.binarycheck() || S.stat == DEAD)
- if(istype(S , /mob/living/silicon/ai))
- var/renderedAI = "Robotic Talk, [name] ([desig]) [message_a]"
- S << renderedAI
+ for(var/mob/M in player_list)
+ if(M.binarycheck() || (M.stat == DEAD && (M.client.prefs.toggles & CHAT_GHOSTEARS) && !istype(M, /mob/new_player)))
+ if(istype(M, /mob/living/silicon/ai))
+ var/renderedAI = "Robotic Talk, [name] ([desig]) [message_a]"
+ M << renderedAI
else
- S << rendered
+ M << rendered
/mob/living/silicon/binarycheck()
return 1