diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm
index 7ccffd0fc0..221863ce3c 100644
--- a/code/modules/mob/hear_say.dm
+++ b/code/modules/mob/hear_say.dm
@@ -55,7 +55,7 @@
src << "[speaker_name][alt_name] talks but you cannot hear \him."
else
src << "[speaker_name][alt_name] [track][verb], \"[message]\""
- if (speech_sound && !istype(src, /mob/dead/observer))
+ if (speech_sound && (get_dist(speaker, src) <= world.view && src.z == speaker.z))
var/turf/source = speaker? get_turf(speaker) : get_turf(src)
src.playsound_local(source, speech_sound, sound_vol, 1)