diff --git a/game/modules/tome/data/talents/chronomancy/chronomancer.lua b/game/modules/tome/data/talents/chronomancy/chronomancer.lua
index 3a6684f848503c67c3274351c88315dcd0542447..90d56d93be4e14ac2454d825482509f061525dc7 100644
--- a/game/modules/tome/data/talents/chronomancy/chronomancer.lua
+++ b/game/modules/tome/data/talents/chronomancy/chronomancer.lua
@@ -227,7 +227,7 @@ doWardenWeaponSwap = function(self, t, type, silent)
 
 	if type == "blade" then
 		local mainhand, offhand = self:hasDualWeapon()
-		if not mainhand then
+		if not mainhand or self:hasArcheryWeapon("bow") then  -- weird but this is lets ogers offhanding daggers still swap
 			swap = true
 			warden_weapon = "blade"
 		end
diff --git a/game/modules/tome/data/talents/techniques/techniques.lua b/game/modules/tome/data/talents/techniques/techniques.lua
index a6eabb2fd8575e3e60106157f5917f8f4d7e766b..45c5a7c4c3e49f997445971372d5507e1eca1f67 100644
--- a/game/modules/tome/data/talents/techniques/techniques.lua
+++ b/game/modules/tome/data/talents/techniques/techniques.lua
@@ -263,7 +263,13 @@ techs_wil_req5 = {
 -- Archery range talents
 archery_range = function(self, t)
 	local weapon, ammo, offweapon = self:hasArcheryWeapon()
-	if not weapon or not weapon.combat then return 1 end
+	if not weapon or not weapon.combat then 
+		if self:attr("warden_swap") and self:hasArcheryWeaponQS() then
+			weapon, ammo, offweapon = self:hasArcheryWeaponQS()
+		else
+			return 1
+		end
+	end
 	return math.min(weapon.combat.range or 6, offweapon and offweapon.combat and offweapon.combat.range or 40)
 end