diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 8f2503847ac..09096e1d656 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -566,7 +566,8 @@ * - [inhand][boolean]: Whether or not the stack to check should act like it's in a mob's hand. */ /obj/item/stack/proc/can_merge(obj/item/stack/check, inhand = FALSE) - if(!istype(check, merge_type)) + // We don't only use istype here, since that will match subtypes, and stack things that shouldn't stack + if(!istype(check, merge_type) || check.merge_type != merge_type) return FALSE if(mats_per_unit ~! check.mats_per_unit) // ~! in case of lists this operator checks only keys, but not values return FALSE