diff --git a/game/modules/tome/class/interface/Archery.lua b/game/modules/tome/class/interface/Archery.lua
index 4683fee4268c074fafc16c1499899648038179da..4724888671969b56368128a19bdcc8117aeaf3ab 100644
--- a/game/modules/tome/class/interface/Archery.lua
+++ b/game/modules/tome/class/interface/Archery.lua
@@ -549,8 +549,8 @@ function _M:hasArcheryWeapon(type)
 			return nil, "bad ammo"
 		end
 	end
-	if type and weapon.subtype ~= type then return nil, "bad type" end
-	if type and offweapon and offweapon.subtype ~= type then return nil, "bad type" end
+	if type and weapon.archery_kind ~= type then return nil, "bad type" end
+	if type and offweapon and offweapon.archery_kind ~= type then return nil, "bad type" end
 	return weapon, ammo, offweapon
 end
 
diff --git a/game/modules/tome/data/general/objects/bows.lua b/game/modules/tome/data/general/objects/bows.lua
index 67ad11440fdcc9a81893496799044fc63538cf8b..dc0ef8639a8aa66cebcc2aeecf735916db6e3b96 100644
--- a/game/modules/tome/data/general/objects/bows.lua
+++ b/game/modules/tome/data/general/objects/bows.lua
@@ -30,6 +30,7 @@ newEntity{
 	rarity = 7,
 	combat = { talented = "bow", sound = "actions/arrow", sound_miss = "actions/arrow",},
 	require = { talent = { Talents.T_SHOOT }, },
+	archery_kind = "bow",
 	archery = "bow",
 	proj_image = resolvers.image_material("arrow", "wood"),
 	desc = [[Longbows are used to shoot arrows at your foes.]],
diff --git a/game/modules/tome/data/general/objects/slings.lua b/game/modules/tome/data/general/objects/slings.lua
index 11125f69dc9d8fb84514e7dae730bc12c5adb468..d56a027a10fd7a29a96c09506ebc8b409f308ba3 100644
--- a/game/modules/tome/data/general/objects/slings.lua
+++ b/game/modules/tome/data/general/objects/slings.lua
@@ -28,6 +28,7 @@ newEntity{
 	encumber = 4,
 	rarity = 7,
 	combat = { talented = "sling", sound = "actions/sling", sound_miss = "actions/sling", },
+	archery_kind = "sling",
 	archery = "sling",
 	require = { talent = { Talents.T_SHOOT }, },
 	proj_image = resolvers.image_material("shot_s", "metal"),