diff --git a/code/game/objects/items/implants/implant_storage.dm b/code/game/objects/items/implants/implant_storage.dm
index 99eecc6ff30..e9562817512 100644
--- a/code/game/objects/items/implants/implant_storage.dm
+++ b/code/game/objects/items/implants/implant_storage.dm
@@ -10,10 +10,16 @@
SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SHOW, imp_in, TRUE)
/obj/item/implant/storage/removed(source, silent = FALSE, special = 0)
+ if(!special)
+ var/datum/component/storage/lostimplant = GetComponent(/datum/component/storage/concrete/implant)
+ var/mob/living/implantee = source
+ for (var/obj/item/I in lostimplant.contents())
+ I.add_mob_blood(implantee)
+ lostimplant.do_quick_empty()
+ implantee.visible_message("A bluespace pocket opens around [src] as it exits [implantee], spewing out its contents and rupturing the surrounding tissue!")
+ implantee.apply_damage(20, BRUTE, BODY_ZONE_CHEST)
+ qdel(lostimplant)
. = ..()
- if(.)
- if(!special)
- qdel(GetComponent(/datum/component/storage/concrete/implant))
/obj/item/implant/storage/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE)
for(var/X in target.implants)
diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm
index 450235b4bb9..5b207555d7b 100644
--- a/code/modules/surgery/implant_removal.dm
+++ b/code/modules/surgery/implant_removal.dm
@@ -23,8 +23,8 @@
/datum/surgery_step/extract_implant/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(I)
- user.visible_message("[user] successfully removes [I] from [target]'s [target_zone]!", "You successfully remove [I] from [target]'s [target_zone].")
I.removed(target)
+ user.visible_message("[user] successfully removes [I] from [target]'s [target_zone]!", "You successfully remove [I] from [target]'s [target_zone].")
var/obj/item/implantcase/case
for(var/obj/item/implantcase/ic in user.held_items)