diff --git a/code/datums/diseases/anxiety.dm b/code/datums/diseases/anxiety.dm
index 4d9716e44da..c9768534760 100644
--- a/code/datums/diseases/anxiety.dm
+++ b/code/datums/diseases/anxiety.dm
@@ -36,6 +36,14 @@
if(prob(2))
affected_mob.visible_message("[affected_mob] coughs up butterflies!", \
"You cough up butterflies!")
- new /mob/living/simple_animal/butterfly(affected_mob.loc)
- new /mob/living/simple_animal/butterfly(affected_mob.loc)
- return
+ for(var/i in 1 to 2)
+ var/mob/living/simple_animal/butterfly/B = new(affected_mob.loc)
+ addtimer(CALLBACK(B, /mob/living/simple_animal/butterfly/.proc/decompose), rand(5, 25) SECONDS)
+
+/**
+ * Made so severe anxiety does not overload the SSmob while keeping it's effect
+ */
+/mob/living/simple_animal/butterfly/proc/decompose()
+ visible_message("[src] decomposes due to being outside of its original habitat for too long!",
+ "You decompose for being too long out of your habitat!")
+ melt()