diff --git a/code/datums/spells/mind_transfer.dm b/code/datums/spells/mind_transfer.dm
index 7ed4d7e2b68..878b30a9505 100644
--- a/code/datums/spells/mind_transfer.dm
+++ b/code/datums/spells/mind_transfer.dm
@@ -43,7 +43,7 @@ Also, you never added distance checking after target is selected. I've went ahea
user << "They appear to be catatonic! Not even magic can affect their vacant mind."
return
- if(target.mind.special_role in protected_roles)
+ if((target.mind.special_role in protected_roles) || cmptext(copytext(target.key,1,2),"@"))
user << "Their mind is resisting your spell!"
return
@@ -69,6 +69,7 @@ Also, you never added distance checking after target is selected. I've went ahea
ghost.mind.transfer_to(caster)
if(ghost.key)
caster.key = ghost.key //have to transfer the key since the mind was not active
+ qdel(ghost)
if(caster.mind.special_verbs.len)//If they had any special verbs, we add them here.
for(var/V in caster.mind.special_verbs)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 3be94e46b2f..c00a198bb3e 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -18,7 +18,7 @@ var/list/ai_list = list()
icon_state = "ai"
anchored = 1
density = 1
- status_flags = CANSTUN|CANPARALYSE|CANPUSH
+ status_flags = CANSTUN|CANPUSH
force_compose = 1 //This ensures that the AI always composes it's own hear message. Needed for hrefs and job display.
med_hud = DATA_HUD_MEDICAL_BASIC
sec_hud = DATA_HUD_SECURITY_BASIC