diff --git a/code/modules/paperwork/paperbin.dm b/code/modules/paperwork/paperbin.dm
index c56de422e79..6eb42ae005d 100644
--- a/code/modules/paperwork/paperbin.dm
+++ b/code/modules/paperwork/paperbin.dm
@@ -25,15 +25,26 @@
amount=0
update_icon()
-/obj/item/weapon/paper_bin/MouseDrop(mob/user as mob)
- if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr))))))
- if(!istype(usr, /mob/living/carbon/slime) && !istype(usr, /mob/living/simple_animal))
- if( !usr.get_active_hand() ) //if active hand is empty
- src.loc = user
- user.put_in_hands(src)
- user.visible_message("[user] picks up the [src].", "You grab [src] from the floor!")
-
- return
+/obj/item/weapon/paper_bin/MouseDrop(atom/over_object)
+ var/mob/M = usr
+ if(M.restrained() || M.stat || !Adjacent(M))
+ return
+
+ if(over_object == M)
+ M.put_in_hands(src)
+
+ else if(istype(over_object, /obj/screen))
+ switch(over_object.name)
+ if("r_hand")
+ if(!M.unEquip(src))
+ return
+ M.put_in_r_hand(src)
+ if("l_hand")
+ if(!M.unEquip(src))
+ return
+ M.put_in_l_hand(src)
+
+ add_fingerprint(M)
/obj/item/weapon/paper_bin/attack_paw(mob/user as mob)