diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index d69a20d06fda896d1f035a42925d1e7633e34020..ae0585c88968010bfef71e0289a275e89318fbd0 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -655,7 +655,7 @@ function _M:getTextualDesc(compare_with, use_actor)
 		end
 		
 		if combat.crushing_blow then
-			desc:add({"color", "YELLOW"}, "Crushing Blows: ", {"color", "LAST"}, "Damage dealt by this weapon is increased by your critical multiplier, if doing so would kill the target.", true)
+			desc:add({"color", "YELLOW"}, "Crushing Blows: ", {"color", "LAST"}, "Damage dealt by this weapon is increased by half your critical multiplier, if doing so would kill the target.", true)
 		end
 
 		compare_fields(combat, compare_with, field, "travel_speed", "%+d%%", "Travel speed: ", 100, false, false, add_table)
diff --git a/game/modules/tome/data/damage_types.lua b/game/modules/tome/data/damage_types.lua
index e8b9d185eee3e54a651cb7232c1abc6137053f87..2ba2fd6868d39be97e6d656c4c1236fc9e896a71 100644
--- a/game/modules/tome/data/damage_types.lua
+++ b/game/modules/tome/data/damage_types.lua
@@ -127,6 +127,7 @@ setDefaultProjector(function(src, x, y, type, dam, tmp, no_martyr)
 			local inc
 			if src.combatGetDamageIncrease then inc = src:combatGetDamageIncrease(type)
 			else inc = (src.inc_damage.all or 0) + (src.inc_damage[type] or 0) end
+			if src.getVim and src:attr("demonblood_dam") then inc = inc + ((src.demonblood_dam or 0) * (src:getVim() or 0)) end
 
 			-- Increases damage for the entity type (Demon, Undead, etc)
 			if target.type and src.inc_damage_actor_type then
@@ -289,6 +290,13 @@ setDefaultProjector(function(src, x, y, type, dam, tmp, no_martyr)
 			print("[PROJECTOR] after self-resists dam", dam)
 		end
 
+		--Vim based defence
+		if target:attr("demonblood_def") and target.getVim then
+			local demon_block = math.min(dam*0.5,target.demonblood_def*(target:getVim() or 0))
+			dam= dam - demon_block
+			target:incVim((-demon_block)/20)
+		end
+		
 		-- Static reduce damage
 		if dam > 0 and target.isTalentActive and target:isTalentActive(target.T_ANTIMAGIC_SHIELD) then
 			local t = target:getTalentFromId(target.T_ANTIMAGIC_SHIELD)