diff --git a/code/game/objects/structures/loom.dm b/code/game/objects/structures/loom.dm
index 290f16f778..1b4cac9d1f 100644
--- a/code/game/objects/structures/loom.dm
+++ b/code/game/objects/structures/loom.dm
@@ -21,21 +21,21 @@
return TRUE
///Handles the weaving.
-/obj/structure/loom/proc/weave(obj/item/stack/I, mob/user)
- if(!istype(I))
+/obj/structure/loom/proc/weave(obj/item/stack/sheet/S, mob/user)
+ if(!istype(S) || !S.is_fabric)
return FALSE
if(!anchored)
user.show_message("The loom needs to be wrenched down.", 1)
return FALSE
- if(I.amount < FABRIC_PER_SHEET)
+ if(S.amount < FABRIC_PER_SHEET)
user.show_message("You need at least [FABRIC_PER_SHEET] units of fabric before using this.", 1)
return FALSE
- user.show_message("You start weaving \the [I.name] through the loom..", 1)
- if(I.use_tool(src, user, I.pull_effort))
- if(I.amount >= FABRIC_PER_SHEET)
- new I.loom_result(drop_location())
- I.use(FABRIC_PER_SHEET)
- user.show_message("You weave \the [I.name] into a workable fabric.", 1)
+ user.show_message("You start weaving \the [S.name] through the loom..", 1)
+ if(S.use_tool(src, user, S.pull_effort))
+ if(S.amount >= FABRIC_PER_SHEET)
+ new S.loom_result(drop_location())
+ S.use(FABRIC_PER_SHEET)
+ user.show_message("You weave \the [S.name] into a workable fabric.", 1)
return TRUE
/obj/structure/loom/unanchored