diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 1175e4bf197ab71ea2f0d2745a93f31f8f71503b..8fc01030e0851b6571517b6d009260c5f11544b5 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -3609,7 +3609,7 @@ function _M:preUseTalent(ab, silent, fake)
 	end
 
 	-- Cant heal
-	if ab.is_heal and self:attr("no_healing") then return false end
+	if ab.is_heal and (self:attr("no_healing") or ((self.healing_factor or 1) <= 0)) then return false end
 	if ab.is_teleport and self:attr("encased_in_ice") then return false end
 
 	if not silent then
diff --git a/game/modules/tome/data/talents/spells/necrosis.lua b/game/modules/tome/data/talents/spells/necrosis.lua
index 4dd4943f3a43c76d95bdfaaa12d7d02bbf665f0d..0d5e77679b1fe60a80fda4f08e2cf0b0c2b3266a 100644
--- a/game/modules/tome/data/talents/spells/necrosis.lua
+++ b/game/modules/tome/data/talents/spells/necrosis.lua
@@ -75,7 +75,7 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Your target's doom draws near. It cannot regenerate or heal at all, and will take %d%% of its remaining life (or %0.2f, whichever is lower) over 10 turns as arcane damage.
+		return ([[Your target's doom draws near. Its healing factor is reduced by 100%%, and will take %d%% of its remaining life (or %0.2f, whichever is lower) over 10 turns as arcane damage.
 		The damage will increase with your Spellpower.]]):
 		format(t.getDamage(self, t), t.getMax(self, t))
 	end,
diff --git a/game/modules/tome/data/timed_effects/magical.lua b/game/modules/tome/data/timed_effects/magical.lua
index b0db9cad5a26d51b42c950ed81d774ed4c392c67..b78d6d29db06d6e0c421d68b68c491b7e6051bc1 100644
--- a/game/modules/tome/data/timed_effects/magical.lua
+++ b/game/modules/tome/data/timed_effects/magical.lua
@@ -1372,7 +1372,7 @@ newEffect{
 newEffect{
 	name = "IMPENDING_DOOM", image = "talents/impending_doom.png",
 	desc = "Impending Doom",
-	long_desc = function(self, eff) return ("The target's final doom is drawing near, preventing all forms of healing and regeneration and dealing %0.2f arcane damage per turn. The effect will stop if the caster dies."):format(eff.dam) end,
+	long_desc = function(self, eff) return ("The target's final doom is drawing near, reducing healing factor by 100%% and dealing %0.2f arcane damage per turn. The effect will stop if the caster dies."):format(eff.dam) end,
 	type = "magical",
 	subtype = { arcane=true },
 	status = "detrimental",
@@ -1380,16 +1380,14 @@ newEffect{
 	on_gain = function(self, err) return "#Target# is doomed!", "+Doomed" end,
 	on_lose = function(self, err) return "#Target# is freed from the impending doom.", "-Doomed" end,
 	activate = function(self, eff)
-		eff.healid = self:addTemporaryValue("no_healing", 1)
-		eff.regenid = self:addTemporaryValue("no_life_regen", 1)
+		eff.healid = self:addTemporaryValue("healing_factor", -1)
 	end,
 	on_timeout = function(self, eff)
 		if eff.src.dead or not game.level:hasEntity(eff.src) then return true end
 		DamageType:get(DamageType.ARCANE).projector(eff.src, self.x, self.y, DamageType.ARCANE, eff.dam)
 	end,
 	deactivate = function(self, eff)
-		self:removeTemporaryValue("no_healing", eff.healid)
-		self:removeTemporaryValue("no_life_regen", eff.regenid)
+		self:removeTemporaryValue("healing_factor", eff.healid)
 	end,
 }