diff --git a/game/modules/tome/data/talents/cursed/endless-hunt.lua b/game/modules/tome/data/talents/cursed/endless-hunt.lua
index 25e7e3e86e4d8e804e9dbd0c97c118d2a718c4d8..86e4c8a7765c6c0b78ff3ffd8d673cbbba2ebe48 100644
--- a/game/modules/tome/data/talents/cursed/endless-hunt.lua
+++ b/game/modules/tome/data/talents/cursed/endless-hunt.lua
@@ -101,7 +101,7 @@ newTalent{
 	tactical = { CLOSEIN = 2, ATTACK = 1 },
 	requires_target = true,
 	action = function(self, t)
-		local tg = {type="hit", range=self:getTalentRange(t)}
+		local tg = {type="hit", pass_terrain = true, range=self:getTalentRange(t)}
 		local x, y, target = self:getTarget(tg)
 		if not x or not y or not target then return nil end
 		if math.floor(core.fov.distance(self.x, self.y, x, y)) > self:getTalentRange(t) then return nil end
diff --git a/game/modules/tome/data/talents/cursed/fateful-aura.lua b/game/modules/tome/data/talents/cursed/fateful-aura.lua
index 724c8ebf4b2aa598ed0b6e19cb66a8f05051f73d..c7f0e10f381a398e2fadcd86d24d37fed860ffef 100644
--- a/game/modules/tome/data/talents/cursed/fateful-aura.lua
+++ b/game/modules/tome/data/talents/cursed/fateful-aura.lua
@@ -86,8 +86,6 @@ newTalent{
 		if item.type == "ammo" then return end
 
 		item.cursed_touch = true
-		item.name = "cursed " .. item.name
-		item.encumber = item.encumber + 1
 
 		local affectedPercent
 		local affected = 0
@@ -132,7 +130,10 @@ newTalent{
 			end
 		end
 
-		if affected > 0 then item.name = "cursed ".. item.name end
+		if affected > 0 then
+			item.encumber = item.encumber + 1
+			item.name = "cursed ".. item.name
+		end
 	end,
 	curseFloor = function(self, t, x, y)
 		local i = 1
diff --git a/game/modules/tome/data/talents/cursed/shadows.lua b/game/modules/tome/data/talents/cursed/shadows.lua
index 568fdaed73d8ff9348e4e796a399d5fd0e8cbf98..bf8511407d25cae202436bd483e57896309c1aad 100644
--- a/game/modules/tome/data/talents/cursed/shadows.lua
+++ b/game/modules/tome/data/talents/cursed/shadows.lua
@@ -54,7 +54,7 @@ newTalent{
 	requires_target = true,
 	tactical = { CLOSEIN = 2 },
 	action = function(self, t)
-		local tg = {type="hit", range=self:getTalentRange(t)}
+		local tg = {type="hit", pass_terrain = true, range=self:getTalentRange(t)}
 		local x, y, target = self:getTarget(tg)
 		if not x or not y or not target then return nil end
 		if math.floor(core.fov.distance(self.x, self.y, x, y)) > self:getTalentRange(t) then return nil end