diff --git a/code/datums/abilities/flock/flockmind.dm b/code/datums/abilities/flock/flockmind.dm
index 12c730e69c..d09d6f5f6f 100644
--- a/code/datums/abilities/flock/flockmind.dm
+++ b/code/datums/abilities/flock/flockmind.dm
@@ -202,6 +202,8 @@
if (target.get_health_percentage() >= 1)
boutput(holder.owner, "[target.real_name] has no damage!")
return TRUE
+ if (isdead(target))
+ return TRUE
playsound(holder.owner, "sound/misc/flockmind/flockmind_cast.ogg", 80, 1)
boutput(holder.owner, "You focus the flock's efforts on fixing [target.real_name]")
diff --git a/code/mob/living/critter/flock/flockdrone.dm b/code/mob/living/critter/flock/flockdrone.dm
index 84a7308fc3..970a140b95 100644
--- a/code/mob/living/critter/flock/flockdrone.dm
+++ b/code/mob/living/critter/flock/flockdrone.dm
@@ -498,8 +498,10 @@
// also maybe we've just had environmental damage, who knows
/mob/living/critter/flock/drone/TakeDamage(zone, brute, burn, tox, damage_type, disallow_limb_loss)
..()
- var/prev_damaged = src.damaged
src.check_health()
+ if (brute <= 0 && burn <= 0 && tox <= 0)
+ return
+ var/prev_damaged = src.damaged
if(!isdead(src) && src.is_npc)
// if we've been damaged a new stage, call it out
if(prev_damaged != src.damaged && src.damaged > 0)
@@ -843,6 +845,8 @@
if(F.get_health_percentage() >= 1.0)
boutput(user, "They don't need to be repaired, they're in perfect condition.")
return
+ if (isdead(F))
+ return
if(user.resources < 10)
boutput(user, "Not enough resources to repair (you need 10).")
else
diff --git a/code/mob/living/critter/flockcritter_parent.dm b/code/mob/living/critter/flockcritter_parent.dm
index b69170d127..c7c3f29e02 100644
--- a/code/mob/living/critter/flockcritter_parent.dm
+++ b/code/mob/living/critter/flockcritter_parent.dm
@@ -391,6 +391,8 @@
D.icon_state = "door1"//make it not look broke
else
T.HealDamage("All", T.health_brute / 3, T.health_burn / 3)
+ if (T.is_npc)
+ T.ai.interrupt()
F.pay_resources(10)
/////////////////////////////////////////////////////////////////////////////////