diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm
index 2f5627e8413..4d003753876 100644
--- a/code/modules/mob/dead/observer/say.dm
+++ b/code/modules/mob/dead/observer/say.dm
@@ -1,20 +1,10 @@
-/mob/dead/observer/say(var/message)
+/mob/dead/observer/say(message)
message = sanitize(copytext(message, 1, MAX_MESSAGE_LEN))
if(!message)
return
- log_ghostsay(message, src)
-
- if(src.client)
- if(src.client.prefs.muted & MUTE_DEADCHAT)
- to_chat(src, "You cannot talk in deadchat (muted).")
- return
-
- if(src.client.handle_spam_prevention(message,MUTE_DEADCHAT))
- return
-
- . = src.say_dead(message)
+ return say_dead(message)
/mob/dead/observer/emote(act, type, message, force)
diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm
index d4546f4f6bc..e944e692887 100644
--- a/code/modules/mob/living/say.dm
+++ b/code/modules/mob/living/say.dm
@@ -351,8 +351,6 @@ proc/get_radio_key_from_channel(var/channel)
return
if(stat)
- if(stat == DEAD)
- return say_dead(message_pieces)
return
if(is_muzzled())
diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm
index 41032185c3b..7a26de718b6 100644
--- a/code/modules/mob/say.dm
+++ b/code/modules/mob/say.dm
@@ -44,18 +44,27 @@
usr.emote(message)
-/mob/proc/say_dead(var/message)
- if(!(client && client.holder))
- if(!config.dsay_allowed)
- to_chat(src, "Deadchat is globally muted.")
+/mob/proc/say_dead(message)
+ if(client)
+ if(!client.holder)
+ if(!config.dsay_allowed)
+ to_chat(src, "Deadchat is globally muted.")
+ return
+
+ if(client.prefs.muted & MUTE_DEADCHAT)
+ to_chat(src, "You cannot talk in deadchat (muted).")
return
- if(client && !(client.prefs.toggles & CHAT_DEAD))
- to_chat(usr, "You have deadchat muted.")
- return
+ if(!(client.prefs.toggles & CHAT_DEAD))
+ to_chat(src, "You have deadchat muted.")
+ return
+
+ if(client.handle_spam_prevention(message, MUTE_DEADCHAT))
+ return
say_dead_direct("[pick("complains", "moans", "whines", "laments", "blubbers", "salts")], \"[message]\"", src)
create_log(DEADCHAT_LOG, message)
+ log_ghostsay(message, src)
/mob/proc/say_understands(var/mob/other, var/datum/language/speaking = null)
if(stat == DEAD)