diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm
index 9d7ba493d4..bd964765cb 100644
--- a/code/modules/instruments/songs/play_legacy.dm
+++ b/code/modules/instruments/songs/play_legacy.dm
@@ -86,5 +86,8 @@
var/mob/living/L = M
L.apply_status_effect(STATUS_EFFECT_GOOD_MUSIC)
*/
+ if(!M)
+ hearing_mobs -= M
+ continue
M.playsound_local(source, null, volume * using_instrument.volume_multiplier, S = music_played, preference = /datum/client_preference/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS)
// Could do environment and echo later but not for now
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 0a774d7295..50a3cc5959 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -455,7 +455,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
to_chat(usr, "You cannot follow a mob standing on holy grounds!")
return
if(get_z(target) in using_map?.secret_levels)
- to_chat(src, SPAN_WARNING("Sorry, that target is in an area that ghosts aren't allowed to go."))
+ to_chat(src, "Sorry, that target is in an area that ghosts aren't allowed to go.")
return
if(target != src)
if(following && following == target)
@@ -463,7 +463,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
following = target
to_chat(src, "Now following [target]")
if(ismob(target))
- forceMove(get_turf(target))
+ var/target_turf = get_turf(target)
+ if(!target_turf)
+ to_chat(usr, "This mob does not seem to exist in the tangible world.")
+ return
+ forceMove(target_turf)
var/mob/M = target
M.following_mobs += src
else
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 6a60ec0448..f5dd0d3aca 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -402,7 +402,7 @@ emp_act
return
// PERSON BEING HIT: CAN BE DROP PRED, ALLOWS THROW VORE.
// PERSON BEING THROWN: DEVOURABLE, ALLOWS THROW VORE, CAN BE DROP PREY.
- if((can_be_drop_pred && throw_vore) && (thrown_mob.devourable && thrown_mob.throw_vore && thrown_mob.can_be_drop_prey)) //Prey thrown into pred.
+ if((can_be_drop_pred && throw_vore && vore_selected) && (thrown_mob.devourable && thrown_mob.throw_vore && thrown_mob.can_be_drop_prey)) //Prey thrown into pred.
vore_selected.nom_mob(thrown_mob) //Eat them!!!
visible_message("[thrown_mob] is thrown right into [src]'s [lowertext(vore_selected.name)]!")
if(thrown_mob.loc != vore_selected)
@@ -412,7 +412,7 @@ emp_act
// PERSON BEING HIT: CAN BE DROP PREY, ALLOWS THROW VORE, AND IS DEVOURABLE.
// PERSON BEING THROWN: CAN BE DROP PRED, ALLOWS THROW VORE.
- else if((can_be_drop_prey && throw_vore && devourable) && (thrown_mob.can_be_drop_pred && thrown_mob.throw_vore)) //Pred thrown into prey.
+ else if((can_be_drop_prey && throw_vore && devourable) && (thrown_mob.can_be_drop_pred && thrown_mob.throw_vore && thrown_mob.vore_selected)) //Pred thrown into prey.
visible_message("[src] suddenly slips inside of [thrown_mob]'s [lowertext(thrown_mob.vore_selected.name)] as [thrown_mob] flies into them!")
thrown_mob.vore_selected.nom_mob(src) //Eat them!!!
if(src.loc != thrown_mob.vore_selected)
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 83384066eb..8020233ad1 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -776,7 +776,7 @@
if(istype(I, /obj/item/device/paicard))
var/obj/item/device/paicard/palcard = I
var/mob/living/silicon/pai/pocketpal = palcard.pai
- if(!pocketpal.devourable)
+ if(pocketpal && (!pocketpal.devourable))
to_chat(src, "\The [pocketpal] doesn't allow you to eat it.")
return