diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index b1388111f0f..da306d199e6 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -937,7 +937,8 @@ var/list/teleport_runes = list()
icon_state = "6"
construct_invoke = 0
color = rgb(200, 0, 0)
- var/mob/living/summoned_guy = null
+ var/mob/living/carbon/human/summoned_guy = null
+ var/is_busy = 0
/obj/effect/rune/manifest/New(loc)
..()
@@ -946,6 +947,10 @@ var/list/teleport_runes = list()
notify_ghosts("Manifest rune created in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src)
/obj/effect/rune/manifest/can_invoke(mob/living/user)
+ if(is_busy)
+ to_chat(user,"The rune is already in use.")
+ fail_invoke()
+ return list()
if(!(user in get_turf(src)))
to_chat(user,"You must be standing on [src]!")
fail_invoke()
@@ -986,6 +991,7 @@ var/list/teleport_runes = list()
ticker.mode.add_cultist(new_human.mind, 0)
summoned_guy = new_human
to_chat(new_human, "You are a servant of [ticker.mode.cultdat.entity_title3]. You have been made semi-corporeal by the cult of [ticker.mode.cultdat.entity_name], and you are to serve them at all costs.")
+ is_busy = 1
while(user in get_turf(src))
if(user.stat)
@@ -994,6 +1000,7 @@ var/list/teleport_runes = list()
sleep(3)
qdel(N)
+ is_busy = 0
if(new_human)
new_human.visible_message("[new_human] suddenly dissolves into bones and ashes.", \
"Your link to the world fades. Your form breaks apart.")
@@ -1004,6 +1011,7 @@ var/list/teleport_runes = list()
/obj/effect/rune/manifest/Destroy()
if(summoned_guy)
- var/mob/living/carbon/human/H = summoned_guy
- H.dust()
+ summoned_guy.dust()
+ summoned_guy = null
+ is_busy = 0
return ..()