diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index a1e5baf8450..9dad7dabba2 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -266,13 +266,19 @@
return
if(user == O) //try to climb onto it
return ..()
- if(!opened || istype(O, /obj/structure/closet))
+ if(!opened)
+ return
+ if(!isturf(O.loc))
return
+ var/actuallyismob = 0
+ if(isliving(O))
+ actuallyismob = 1
+ else if(!istype(O, /obj/item))
+ return
+ var/turf/T = get_turf(src)
var/list/targets = list(O, src)
add_fingerprint(user)
- var/mob/living/L = O
- var/actuallyismob = istype(L)
user.visible_message("[user] [actuallyismob ? "tries to ":""]stuff [O] into [src].", \
"You [actuallyismob ? "try to ":""]stuff [O] into [src].", \
"You hear clanging.")
@@ -281,12 +287,13 @@
user.visible_message("[user] stuffs [O] into [src].", \
"You stuff [O] into [src].", \
"You hear a loud metal bang.")
+ var/mob/living/L = O
if(!issilicon(L))
L.Weaken(2)
- O.forceMove(get_turf(src))
+ O.forceMove(T)
close()
else
- O.forceMove(get_turf(src))
+ O.forceMove(T)
return 1
/obj/structure/closet/relaymove(mob/user)