diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm
index 3cabbac3e75..f7fed41581d 100644
--- a/code/game/machinery/suit_storage_unit.dm
+++ b/code/game/machinery/suit_storage_unit.dm
@@ -159,12 +159,44 @@
/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob, params)
if(!is_operational())
+ if(panel_open)
+ to_chat(usr, "Close the maintenance panel first.")
+ else
+ to_chat(usr, "The unit is not operational.")
return
if(isscrewdriver(I))
panel_open = !panel_open
playsound(loc, I.usesound, 100, 1)
to_chat(user, text("You [panel_open ? "open up" : "close"] the unit's maintenance panel."))
updateUsrDialog()
+ return
+ if(state_open)
+ if(store_item(I, user))
+ update_icon()
+ updateUsrDialog()
+ to_chat(user, "You load the [I] into the storage compartment.")
+ else
+ to_chat(user, "The unit already contains that item.")
+
+
+/obj/machinery/suit_storage_unit/proc/store_item(obj/item/I, mob/user)
+ . = FALSE
+ if(istype(I, /obj/item/clothing/suit/space) && !suit)
+ suit = I
+ . = TRUE
+ if(istype(I, /obj/item/clothing/head/helmet) && !helmet)
+ helmet = I
+ . = TRUE
+ if(istype(I, /obj/item/clothing/mask) && !mask)
+ mask = I
+ . = TRUE
+ if((istype(I, /obj/item/tank) || istype(I, /obj/item/clothing/shoes/magboots)) && !storage)
+ storage = I
+ . = TRUE
+ if(.)
+ user.drop_item()
+ I.forceMove(src)
+
/obj/machinery/suit_storage_unit/power_change()
..()
@@ -380,7 +412,7 @@
dat+= text("Breathmask storage compartment: []
",(mask ? mask.name : "No breathmask detected.") )
if(mask && state_open)
dat+="Dispense mask
"
- dat+= text("Breathmask storage compartment: []
",(storage ? storage.name : "No storage item detected.") )
+ dat+= text("Tank, Magboots storage compartment: []
",(storage ? storage.name : "No storage item detected.") )
if(storage && state_open)
dat+="Dispense storage item
"
if(occupant)