diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm
index 05414f0a4d..91fbf13e3c 100644
--- a/code/game/objects/structures/ghost_role_spawners.dm
+++ b/code/game/objects/structures/ghost_role_spawners.dm
@@ -152,6 +152,8 @@
var/transfer_choice = alert("Transfer your soul to [src]? (Warning, your old body will die!)",,"Yes","No")
if(transfer_choice != "Yes")
return
+ if(QDELETED(src) || uses <= 0)
+ return
log_game("[user.ckey] golem-swapped into [src]")
user.visible_message("A faint light leaves [user], moving to [src] and animating it!","You leave your old body behind, and transfer into [src]!")
create(ckey = user.ckey, flavour = FALSE, name = user.real_name)