diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index f5fc2b79c28..a16a42069d6 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -507,10 +507,19 @@ datum/mind
switch(href_list["implant"])
if("remove")
for(var/obj/item/weapon/implant/loyalty/I in H.contents)
- I.Del()
+ for(var/datum/organ/external/organs in H.organs)
+ if(I in organs.implants)
+ I.Del()
+ break
H << "\blue Your loyalty implant has been deactivated."
if("add")
- H.contents.Add( new /obj/item/weapon/implant/loyalty (src) )
+ var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
+ L.imp_in = H
+ L.implanted = 1
+ var/datum/organ/external/affected = H.organs_by_name["head"]
+ affected.implants += L
+ L.part = affected
+
H << "\red You somehow have become the recepient of a loyalty transplant, and it just activated!"
if(src in ticker.mode.revolutionaries)
special_role = null