diff --git a/code/modules/antagonists/changeling/powers/fakedeath.dm b/code/modules/antagonists/changeling/powers/fakedeath.dm
index d209be14d99..7c37a5d9c98 100644
--- a/code/modules/antagonists/changeling/powers/fakedeath.dm
+++ b/code/modules/antagonists/changeling/powers/fakedeath.dm
@@ -13,7 +13,14 @@
/datum/action/changeling/fakedeath/sting_action(mob/living/user)
..()
if(revive_ready)
- revive(user)
+ INVOKE_ASYNC(src, .proc/revive, user)
+ revive_ready = FALSE
+ name = "Reviving Stasis"
+ desc = "We fall into a stasis, allowing us to regenerate and trick our enemies."
+ button_icon_state = "fake_death"
+ UpdateButtonIcon()
+ chemical_cost = 15
+ to_chat(user, "We have revived ourselves.")
else
to_chat(user, "We begin our stasis, preparing energy to arise once more.")
if(user.stat != DEAD)
@@ -26,6 +33,8 @@
return TRUE
/datum/action/changeling/fakedeath/proc/revive(mob/living/user)
+ if(!user || !istype(user))
+ return
user.cure_fakedeath("changeling")
user.revive(full_heal = TRUE)
var/list/missing = user.get_missing_limbs()
@@ -41,13 +50,6 @@
user.emote("scream")
user.regenerate_limbs(0, list(BODY_ZONE_HEAD))
user.regenerate_organs()
- revive_ready = FALSE
- name = "Reviving Stasis"
- desc = "We fall into a stasis, allowing us to regenerate and trick our enemies."
- button_icon_state = "fake_death"
- UpdateButtonIcon()
- chemical_cost = 15
- to_chat(user, "We have revived ourselves.")
/datum/action/changeling/fakedeath/proc/ready_to_regenerate(mob/user)
if(user && user.mind)