diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua
index d7271dff0e21cf69ff1ee75f14217da823b71c09..db56d276d81acfaa6c00c30ad39eb3192710951b 100644
--- a/game/modules/tome/data/damage_types.lua
+++ b/game/modules/tome/data/damage_types.lua
@@ -1223,8 +1223,8 @@ newDamageType{
 	name = "drain vim", type = "DRAIN_VIM",
 	projector = function(src, x, y, type, dam)
 		if _G.type(dam) == "number" then dam = {dam=dam, vim=0.2} end
-		local realdam = DamageType:get(DamageType.BLIGHT).projector(src, x, y, DamageType.BLIGHT, dam.dam)
 		local target = game.level.map(x, y, Map.ACTOR)
+		local realdam = DamageType:get(DamageType.BLIGHT).projector(src, x, y, DamageType.BLIGHT, dam.dam)
 		if target and target ~= src and realdam > 0 then
 			src:incVim(realdam * dam.vim * target:getRankVimAdjust())
 		end
diff --git a/game/modules/tome/data/talents/corruptions/bone.lua b/game/modules/tome/data/talents/corruptions/bone.lua
index af9bf74c9b35ce4c1cde740ff9b6641b2d006b74..7f989231d9d4452214f8b8a23062e7a5884bbb58 100644
--- a/game/modules/tome/data/talents/corruptions/bone.lua
+++ b/game/modules/tome/data/talents/corruptions/bone.lua
@@ -57,7 +57,7 @@ newTalent{
 	tactical = { DISABLE = 1, CLOSEIN = 3 },
 	requires_target = true,
 	action = function(self, t)
-		local tg = {type="bolt", range=self:getTalentRange(t)}
+		local tg = {type="bolt", range=self:getTalentRange(t), talent=t}
 		local x, y = self:getTarget(tg)
 		if not x or not y then return nil end
 
@@ -101,7 +101,7 @@ newTalent{
 		return self:getTalentLevelRaw(t)
 	end,
 	target = function(self, t)
-		return {type="ball", radius=self:getTalentRadius(t), selffire=false}
+		return {type="ball", radius=self:getTalentRadius(t), selffire=false, talent=t}
 	end,
 	action = function(self, t)
 		local tg = self:getTalentTarget(t)