diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm
index 0e3f0568fe5..b5525814fec 100644
--- a/code/modules/recycling/sortingmachinery.dm
+++ b/code/modules/recycling/sortingmachinery.dm
@@ -154,16 +154,23 @@
. = ..()
if(!in_range(A, user))
return
+
if(!isobj(A))
return
- var/obj/target = A
+ var/obj/target = A
if(is_type_in_list(target, no_wrap))
return
+
+ if(istype(target, /obj/item/stack/packageWrap) && user.a_intent != INTENT_HARM)
+ return
+
if(is_type_in_list(A.loc, list(/obj/item/smallDelivery, /obj/structure/bigDelivery)))
return
+
if(target.anchored)
return
+
if(target in user)
return
@@ -171,6 +178,7 @@
var/obj/item/O = target
if(!use(1))
return FALSE
+
var/obj/item/smallDelivery/P = new /obj/item/smallDelivery(get_turf(O.loc)) //Aaannd wrap it up!
if(!isturf(O.loc))
if(user.client)
@@ -198,9 +206,11 @@
return FALSE
D.init_welded = C.welded
C.welded = TRUE
+
else if(target.GetComponent(/datum/component/two_handed))
to_chat(user, "[target] is too unwieldy to wrap effectively.")
return FALSE
+
else
to_chat(user, "The object you are trying to wrap is unsuitable for the sorting machinery.")
return FALSE