diff --git a/code/game/objects/items/nuke_tools.dm b/code/game/objects/items/nuke_tools.dm
index 9b49f23cb73..b88d4f6a07c 100644
--- a/code/game/objects/items/nuke_tools.dm
+++ b/code/game/objects/items/nuke_tools.dm
@@ -11,7 +11,8 @@
var/cooldown = 0
/obj/item/nuke_core/New()
- SSobj.processing += src
+ ..()
+ SSobj.processing |= src
/obj/item/nuke_core/attackby(obj/item/nuke_core_container/container, mob/user)
if(istype(container))
@@ -41,13 +42,16 @@
core = ncore
icon_state = "core_container_loaded"
user << "Container is sealing..."
- spawn(50)
+ addtimer(src, "seal", 50)
+ return 1
+
+/obj/item/nuke_core_container/proc/seal()
+ if(istype(core))
SSobj.processing -= core
icon_state = "core_container_sealed"
- playsound(loc, 'sound/items/Deconstruct.ogg', 100, 1)
- if(loc == user)
- user << "Container is sealed, the radiation is contained."
- return 1
+ playsound(loc, 'sound/items/Deconstruct.ogg', 60, 1)
+ if(ismob(loc))
+ loc << "[src] is permanently sealed, [core]'s radiation is contained."
/obj/item/nuke_core_container/attackby(obj/item/nuke_core/core, mob/user)
if(istype(core))