diff --git a/code/__HELPERS/trait_helpers.dm b/code/__HELPERS/trait_helpers.dm
index 3e9cb31305d..5c4592a3141 100644
--- a/code/__HELPERS/trait_helpers.dm
+++ b/code/__HELPERS/trait_helpers.dm
@@ -228,6 +228,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define TRAIT_MEPHEDRONE_ADAPTED "mephedrone_adapted" // Trait that changes the ending effects of twitch leaving your system
#define TRAIT_NOKNOCKDOWNSLOWDOWN "noknockdownslowdown" //If this person has this trait, they are not slowed via knockdown, but they can be hit by bullets like a self knockdown
#define TRAIT_CAN_STRIP "can_strip" // This mob can strip other mobs.
+#define TRAIT_CLING_BURSTING "cling_bursting" // This changeling is about to burst into a headslug, block cremation / gibber to prevent nullspace issues
#define TRAIT_I_WANT_BRAINS "mob_zombie" // A general trait for tracking if the mob is a zombie.
#define TRAIT_ABSTRACT_HANDS "abstract_hands" // Mobs with this trait can only pick up abstract items.
#define TRAIT_SLOW_GRABBER "slow_grabber" // Adds a 1.5 * CLICK_CD_MELEE delay to upgrading into a aggressive grab.
diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm
index 69f976fca95..a1f5533f8d2 100644
--- a/code/_globalvars/traits.dm
+++ b/code/_globalvars/traits.dm
@@ -92,6 +92,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_MEPHEDRONE_ADAPTED" = TRAIT_MEPHEDRONE_ADAPTED,
"TRAIT_NOKNOCKDOWNSLOWDOWN" = TRAIT_NOKNOCKDOWNSLOWDOWN,
"TRAIT_CAN_STRIP" = TRAIT_CAN_STRIP,
+ "TRAIT_CLING_BURSTING" = TRAIT_CLING_BURSTING,
"TRAIT_I_WANT_BRAINS" = TRAIT_I_WANT_BRAINS,
"TRAIT_ABSTRACT_HANDS" = TRAIT_ABSTRACT_HANDS,
"TRAIT_SLOW_GRABBER" = TRAIT_SLOW_GRABBER,
diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm
index 194ad6dd440..ba755ab3555 100644
--- a/code/game/objects/structures/morgue.dm
+++ b/code/game/objects/structures/morgue.dm
@@ -472,7 +472,10 @@ GLOBAL_LIST_EMPTY(crematoriums)
M.show_message("You hear a hollow crackle.", EMOTE_VISIBLE)
return
-
+ for(var/mob/living/M in search_contents_for(/mob/living)) //search for this for funny cling shenaigins first.
+ if(HAS_TRAIT(M, TRAIT_CLING_BURSTING))
+ visible_message("The crematorium fails to start, something big is blocking the pipes!")
+ return
for(var/mob/M in viewers(src))
M.show_message("You hear a roar as the crematorium activates.", EMOTE_VISIBLE)
diff --git a/code/modules/antagonists/changeling/powers/become_headslug.dm b/code/modules/antagonists/changeling/powers/become_headslug.dm
index c6e87864784..09cc8190121 100644
--- a/code/modules/antagonists/changeling/powers/become_headslug.dm
+++ b/code/modules/antagonists/changeling/powers/become_headslug.dm
@@ -17,6 +17,7 @@
..()
/datum/action/changeling/headslug/sting_action(mob/living/user)
+ ADD_TRAIT(user, TRAIT_CLING_BURSTING, "last_resort")
user.Weaken(30 SECONDS)
user.do_jitter_animation(1000, -1) // jitter until they are gibbed
user.visible_message("A loud crack erupts from [user], followed by a hiss.")
@@ -30,6 +31,11 @@
/datum/action/changeling/headslug/proc/become_headslug(mob/user)
var/datum/mind/M = user.mind
var/list/organs = user.get_organs_zone("head", 1)
+ if(isobj(user.loc))
+ var/obj/thing_to_break = user.loc
+ user.forceMove(get_turf(user)) // Get them outside of it before it breaks, to prevent issues / so they burst out of it dramatically
+ thing_to_break.visible_message("[user] violently explodes out of [thing_to_break], breaking it!")
+ thing_to_break.obj_break(BRUTE)
for(var/obj/item/organ/internal/I in organs)
I.remove(user, TRUE)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 3ebf97c64ec..8ad5a5a81ce 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -233,6 +233,10 @@
visible_message("You hear a loud metallic grinding sound.")
return
+ if(HAS_TRAIT(occupant, TRAIT_CLING_BURSTING))
+ visible_message("[src] jams up as [occupant]'s corpse rapidly grows in size...")
+ return
+
use_power(1000)
visible_message("You hear a loud squelchy grinding sound.")