diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index f1fc677c3d9..66c55f6d6c4 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -122,7 +122,7 @@ proc/healthanalyze(mob/living/M as mob, mob/living/user as mob, var/mode = 0, va
if(((M_CLUMSY in user.mutations) || user.getBrainLoss() >= 60) && prob(50))
user.visible_message("[user] analyzes the floor's vitals!", \
"You analyze the floor's vitals!")
- playsound(get_turf(src), 'sound/items/healthanalyzer.ogg', 50, 1)
+ playsound(user, 'sound/items/healthanalyzer.ogg', 50, 1)
user << {"Analyzing Results for the floor:
Overall Status: Healthy
Key: Suffocation/Toxin/Burns/Brute
Damage Specifics: 0 - 0 - 0 - 0
@@ -136,7 +136,7 @@ Subject's pulse: ??? BPM"}
if(!silent)
user.visible_message("[user] analyzes [M]'s vitals.", \
"You analyze [M]'s vitals.")
- playsound(get_turf(src), 'sound/items/healthanalyzer.ogg', 50, 1)
+ playsound(user, 'sound/items/healthanalyzer.ogg', 50, 1)
var/fake_oxy = max(rand(1, 40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss())))
var/OX = M.getOxyLoss() > 50 ? "[M.getOxyLoss()]" : M.getOxyLoss()
var/TX = M.getToxLoss() > 50 ? "[M.getToxLoss()]" : M.getToxLoss()
diff --git a/code/game/sound.dm b/code/game/sound.dm
index ef98a41a10d..41dc0b6466f 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -29,6 +29,7 @@ var/list/lightning_sound = list('sound/effects/lightning/chainlightning1.ogg', '
var/frequency = get_rand_frequency() // Same frequency for everybody
var/turf/turf_source = get_turf(source)
if(!turf_source)
+ error("Warning : [source] trying to play sound '[soundin]', but turf could not be found.")
return
/* What's going on in this block?