diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm
index 33f632b490a..16f8dad4bdb 100644
--- a/code/game/dna/genes/goon_powers.dm
+++ b/code/game/dna/genes/goon_powers.dm
@@ -278,6 +278,10 @@
var/list/targets = new /list()
var/list/possible_targets = new /list()
+ if(!check_mouth(user))
+ revert_cast(user)
+ return
+
for(var/atom/movable/O in view_or_range(range, user, selection_type))
if((O in user) && is_type_in_list(O,own_blacklist))
continue
@@ -294,8 +298,21 @@
revert_cast(user)
return
+ if(!check_mouth(user))
+ revert_cast(user)
+ return
+
perform(targets, user = user)
+/obj/effect/proc_holder/spell/targeted/eat/proc/check_mouth(mob/user = usr)
+ var/can_eat = 1
+ if(iscarbon(user))
+ var/mob/living/carbon/C = user
+ if((C.head && (C.head.flags_cover & HEADCOVERSMOUTH)) || (C.wear_mask && (C.wear_mask.flags_cover & MASKCOVERSMOUTH) && !C.wear_mask.mask_adjusted))
+ to_chat(C, "Your mouth is covered, preventing you from eating!")
+ can_eat = 0
+ return can_eat
+
/obj/effect/proc_holder/spell/targeted/eat/cast(list/targets, mob/user = usr)
if(!targets.len)
to_chat(user, "No target found in range.")