diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index e3e4e37396..eaabcf5980 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -255,10 +255,8 @@
addtimer(CALLBACK(src, .proc/inert_check), 2400)
/obj/item/organ/hivelord_core/proc/inert_check()
- if(!owner && !preserved)
+ if(!preserved)
go_inert()
- else
- preserved(implanted = 1)
/obj/item/organ/hivelord_core/proc/preserved(implanted = 0)
inert = FALSE
@@ -278,7 +276,10 @@
update_icon()
/obj/item/organ/hivelord_core/ui_action_click()
- owner.revive(full_heal = 1)
+ if(inert)
+ to_chat(owner, "[src] breaks down as it tries to activate.")
+ else
+ owner.revive(full_heal = 1)
qdel(src)
/obj/item/organ/hivelord_core/on_life()
@@ -306,6 +307,18 @@
qdel(src)
..()
+/obj/item/organ/hivelord_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)
+ . = ..()
+ if(!preserved && !inert)
+ preserved(TRUE)
+ owner.visible_message("[src] stabilizes as it's inserted.")
+
+/obj/item/organ/hivelord_core/Remove(mob/living/carbon/M, special = 0)
+ if(!inert && !special)
+ owner.visible_message("[src] goes inert as it's removed.")
+ go_inert()
+ return ..()
+
/obj/item/organ/hivelord_core/prepare_eat()
return null