diff --git a/code/game/gamemodes/changeling/powers/swap_form.dm b/code/game/gamemodes/changeling/powers/swap_form.dm
index 0e02df12d88..97192c86a0f 100644
--- a/code/game/gamemodes/changeling/powers/swap_form.dm
+++ b/code/game/gamemodes/changeling/powers/swap_form.dm
@@ -18,12 +18,15 @@
if((NOCLONE || SKELETON || HUSK) in target.mutations)
to_chat(user, "DNA of [target] is ruined beyond usability!")
return
- if(!istype(target) || issmall(target) || (NO_DNA in target.dna.species.species_traits))
+ if(!istype(target) || !target.mind || issmall(target) || (NO_DNA in target.dna.species.species_traits))
to_chat(user, "[target] is not compatible with this ability.")
return
if(target.mind.changeling)
to_chat(user, "We are unable to swap forms with another changeling!")
return
+ if(target.has_brain_worms() || user.has_brain_worms())
+ to_chat(user, "A foreign presence repels us from this body!")
+ return
return 1
/datum/action/changeling/swap_form/sting_action(var/mob/living/carbon/user)
@@ -63,6 +66,8 @@
target.add_language("Changeling")
user.remove_language("Changeling")
user.regenerate_icons()
+ if(target.stat == DEAD && target.suiciding) //If Target committed suicide, unset flag for User
+ target.suiciding = 0
for(var/power in lingpowers)
var/datum/action/changeling/S = power