diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index 5cdadb186c..415024d2e0 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -129,15 +129,24 @@
return
if(!M.buckled)
return
- var/matrix/m180 = matrix(M.transform)
- m180.Turn(180)
- animate(M, transform = m180, time = 3)
- M.pixel_y = M.get_standard_pixel_y_offset(180)
- M.adjustBruteLoss(30)
- src.visible_message(text("[M] falls free of [src]!"))
- unbuckle_mob(M,force=1)
- M.emote("scream")
- M.AdjustKnockdown(20)
+ release_mob(M)
+
+/obj/structure/kitchenspike/proc/release_mob(mob/living/M)
+ var/matrix/m180 = matrix(M.transform)
+ m180.Turn(180)
+ animate(M, transform = m180, time = 3)
+ M.pixel_y = M.get_standard_pixel_y_offset(180)
+ M.adjustBruteLoss(30)
+ src.visible_message(text("[M] falls free of [src]!"))
+ unbuckle_mob(M,force=1)
+ M.emote("scream")
+ M.AdjustKnockdown(20)
+
+/obj/structure/kitchenspike/Destroy()
+ if(has_buckled_mobs())
+ for(var/mob/living/L in buckled_mobs)
+ release_mob(L)
+ return ..()
/obj/structure/kitchenspike/deconstruct(disassembled = TRUE)
if(disassembled)