diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm
index 256f347c6cb..378aa3daf7b 100644
--- a/code/game/objects/structures/ai_core.dm
+++ b/code/game/objects/structures/ai_core.dm
@@ -95,8 +95,7 @@
if(C.get_amount() >= 5)
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
user << "You start to add cables to the frame..."
- if(do_after(user, 20, target = src) && C.get_amount() >= 5 && state == SCREWED_CORE)
- C.use(5)
+ if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5))
user << "You add cables to the frame."
state = CABLED_CORE
icon_state = "3"
@@ -121,8 +120,7 @@
if(G.get_amount() >= 2)
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
user << "You start to put in the glass panel..."
- if(do_after(user, 20, target = src) && G.get_amount() >= 2 && state == CABLED_CORE)
- G.use(2)
+ if(do_after(user, 20, target = src) && state == CABLED_CORE && G.use(2))
user << "You put in the glass panel."
state = GLASS_CORE
icon_state = "4"
@@ -135,7 +133,7 @@
module.install(laws, user)
return
- if(istype(P, /obj/item/device/mmi))
+ if(istype(P, /obj/item/device/mmi) && !brain)
var/obj/item/device/mmi/M = P
if(!M.brainmob)
user << "Sticking an empty MMI into the frame would sort of defeat the purpose!"
@@ -161,7 +159,7 @@
ticker.mode.remove_antag_for_borging(M.brainmob.mind)
remove_servant_of_ratvar(M, TRUE)
- M.loc = src
+ M.forceMove(src)
brain = M
user << "Added a brain."
icon_state = "3b"