diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 97f2d301472..76a47e82749 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -366,10 +366,11 @@
traitor_mind.special_role = null
traitor_mind.som = null
slaved.leave_serv_hud(traitor_mind)
+ for(var/datum/objective/protect/mindslave/MS in traitor_mind.objectives)
+ traitor_mind.objectives -= MS
update_traitor_icons_removed(traitor_mind)
-// to_chat(world, "Removed [traitor_mind.current.name] from traitor shit")
- to_chat(traitor_mind.current, "\red The fog clouding your mind clears. You remember nothing from the moment you were implanted until now.(You don't remember who implanted you)")
+ to_chat(traitor_mind.current, "You are no longer a mindslave; you have complete and free control of your own faculties, once more!")
/datum/game_mode/proc/assign_exchange_role(var/datum/mind/owner)
//set faction
diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm
index 79d644b2132..0d5ec7afcc4 100644
--- a/code/game/gamemodes/vampire/vampire.dm
+++ b/code/game/gamemodes/vampire/vampire.dm
@@ -351,8 +351,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
vampire_mind.som = null
slaved.leave_serv_hud(vampire_mind)
update_vampire_icons_removed(vampire_mind)
-// to_chat(world, "Removed [vampire_mind.current.name] from vampire shit")
- to_chat(vampire_mind.current, "\red The fog clouding your mind clears. You remember nothing from the moment you were enthralled until now.")
+ vampire_mind.current.visible_message("[vampire_mind.current] looks as though a burden has been lifted!", "The dark fog in your mind clears as you regain control of your own faculties, you are no longer a vampire thrall!")
if(vampire_mind.current.hud_used)
vampire_mind.current.hud_used.remove_vampire_hud()
diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm
index bc7ba9276f5..8e04d98504b 100644
--- a/code/game/gamemodes/vampire/vampire_powers.dm
+++ b/code/game/gamemodes/vampire/vampire_powers.dm
@@ -267,6 +267,10 @@
W.destroy()
playsound(usr.loc, 'sound/effects/creepyshriek.ogg', 100, 1)
+
+/proc/isvampirethrall(mob/living/M as mob)
+ return istype(M) && M.mind && ticker && ticker.mode && (M.mind in ticker.mode.vampire_enthralled)
+
/obj/effect/proc_holder/spell/vampire/targetted/enthrall
name = "Enthrall (300)"
desc = "You use a large portion of your power to sway those loyal to none to be loyal to you only."
diff --git a/code/game/objects/items/weapons/implants/implant_traitor.dm b/code/game/objects/items/weapons/implants/implant_traitor.dm
index 3209661ad57..78e63ddfae4 100644
--- a/code/game/objects/items/weapons/implants/implant_traitor.dm
+++ b/code/game/objects/items/weapons/implants/implant_traitor.dm
@@ -71,8 +71,8 @@
var/datum/mindslaves/slaved = user.mind.som
H.mind.som = slaved
slaved.serv += H
- slaved.add_serv_hud(user.mind,"syndicate")//handles master servent icons
- slaved.add_serv_hud(H.mind,"mindslave")
+ slaved.add_serv_hud(user.mind, "master") //handles master servent icons
+ slaved.add_serv_hud(H.mind, "mindslave")
log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].")
activated = 1
@@ -81,11 +81,6 @@
/obj/item/weapon/implant/traitor/removed(mob/target)
if(..())
- ticker.mode.traitors -= target.mind
- target.mind.special_role = null
- ticker.mode.update_traitor_icons_removed(target.mind)
- for(var/datum/objective/protect/mindslave/MS in target.mind.objectives)
- target.mind.objectives -= MS
- to_chat(target, "\red You are no longer a mindslave; you have complete and free control of your own faculties, once more!")
+ ticker.mode.remove_traitor_mind(target.mind)
return 1
return 0
\ No newline at end of file
diff --git a/code/modules/reagents/oldchem/reagents/reagents_water.dm b/code/modules/reagents/oldchem/reagents/reagents_water.dm
index df9e0b29b64..11a5759fa5b 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_water.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_water.dm
@@ -297,6 +297,13 @@
if(data >= 75 && prob(33)) // 30 units, 150 seconds
if (!M.confused) M.confused = 1
M.confused += 3
+ if(isvampirethrall(M))
+ ticker.mode.remove_vampire_mind(M.mind)
+ holder.remove_reagent(src.id, src.volume)
+ M.jitteriness = 0
+ M.stuttering = 0
+ M.confused = 0
+ return
if(iscultist(M))
ticker.mode.remove_cultist(M.mind)
holder.remove_reagent(src.id, src.volume) // maybe this is a little too perfect and a max() cap on the statuses would be better??
diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi
index eeb5ecbbee3..c5115b3cbc5 100644
Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ