diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua
index feb914d226452c9c0b4de5a1b99a933c99e3972b..b2246046db64dd7bbb5b9ba9d5ad9f0c886c8cb0 100644
--- a/game/modules/tome/class/interface/Combat.lua
+++ b/game/modules/tome/class/interface/Combat.lua
@@ -1068,6 +1068,22 @@ function _M:attackTargetWith(target, weapon, damtype, mult, force_dam)
 		self:attr("silent_heal", -1)
 	end
 
+	if self.__attacktargetwith_recursing or (weapon and weapon.attack_recurse) then
+		if self.__attacktargetwith_recursing then
+			self.__attacktargetwith_recursing = self.__attacktargetwith_recursing - 1
+		else
+			self.__attacktargetwith_recursing = weapon.attack_recurse - 1
+		end
+
+		if self.__attacktargetwith_recursing > 0 then
+			local _, newhitted, newdam = self:attackTargetWith(target, weapon, damtype, mult, force_dam)
+			hitted = newhitted or hitted
+			dam = math.max(dam, newdam)
+		else
+			self.__attacktargetwith_recursing = nil
+		end
+	end
+
 	return self:combatSpeed(weapon), hitted, dam
 end