diff --git a/game/modules/tome/class/PlayerDisplay.lua b/game/modules/tome/class/PlayerDisplay.lua
index 55bf0b4d19cab9ae09edffd23424202c1b549de0..7a0e4b38933cba177e947737b3d7da34a09f413d 100644
--- a/game/modules/tome/class/PlayerDisplay.lua
+++ b/game/modules/tome/class/PlayerDisplay.lua
@@ -226,6 +226,16 @@ function _M:display()
 
 	self:mouseTooltip(self.TOOLTIP_LIFE, self:makeTextureBar("#c00000#Life:", nil, player.life, player.max_life, player.life_regen * util.bound((player.healing_factor or 1), 0, 2.5), x, h, 255, 255, 255, colors.DARK_RED, colors.VERY_DARK_RED)) h = h + self.font_h
 
+	local shield, max_shield = 0, 0
+	if player:attr("time_shield") then shield = shield + player.time_shield_absorb max_shield = max_shield + player.time_shield_absorb_max end
+	if player:attr("damage_shield") then shield = shield + player.damage_shield_absorb max_shield = max_shield + player.damage_shield_absorb_max end
+	if player:attr("displacement_shield") then shield = shield + player.displacement_shield max_shield = max_shield + player.displacement_shield_max end
+	if player:attr("repulsion_shield") then shield = shield + player.repulsion_shield_absorb max_shield = max_shield + player.repulsion_shield_absorb_max end
+	if player:attr("damage_shunt") then shield = shield + player.damage_shunt_absorb max_shield = max_shield + player.damage_shunt_absorb_max end
+	if max_shield then
+		self:mouseTooltip(self.TOOLTIP_DAMAGE_SHIELD, self:makeTextureBar("#WHITE#Shield:", nil, shield, max_shield, nil, x, h, 255, 255, 255, {r=colors.GREY.r / 3, g=colors.GREY.g / 3, b=colors.GREY.b / 3}, {r=colors.GREY.r / 6, g=colors.GREY.g / 6, b=colors.GREY.b / 6})) h = h + self.font_h
+	end
+
 	if player:knowTalent(player.T_STAMINA_POOL) then
 		self:mouseTooltip(self.TOOLTIP_STAMINA, self:makeTextureBar("#ffcc80#Stamina:", nil, player:getStamina(), player.max_stamina, player.stamina_regen, x, h, 255, 255, 255, {r=0xff / 3, g=0xcc / 3, b=0x80 / 3}, {r=0xff / 6, g=0xcc / 6, b=0x80 / 6})) h = h + self.font_h
 	end
diff --git a/game/modules/tome/class/interface/TooltipsData.lua b/game/modules/tome/class/interface/TooltipsData.lua
index f2d33bf75f779646b4a82192d2f6912c6404bb9f..40b54023c6606c1aadcb65300c5322acc4a8ff2e 100644
--- a/game/modules/tome/class/interface/TooltipsData.lua
+++ b/game/modules/tome/class/interface/TooltipsData.lua
@@ -42,6 +42,11 @@ If it reaches below zero you die.
 Death is usually permanent so beware!
 It is increased by Constitution.]]
 
+TOOLTIP_DAMAGE_SHIELD = [[#GOLD#Damage shields#LAST#
+Various talents, items and powers can grant you a temporary damage shield.
+They all work in slightly different maners, but usualy will absorb some damage before crumbling down.
+]]
+
 TOOLTIP_UNNATURAL_BODY = [[#GOLD#Unnatrual Body Regeneration#LAST#
 Your Unnatural Body talent allows you to feed of the life of your fallen foes.
 Each time you kill a creature your maximum regeneration pool increases and each turn some of it transfers into your own life.]]
diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua
index b6cda58bc13e2bd8b2c9a507fd7f2d79cecae496..3868abfbd114a817b185ec50aa20dcb051ed7fb6 100644
--- a/game/modules/tome/data/timed_effects.lua
+++ b/game/modules/tome/data/timed_effects.lua
@@ -1132,6 +1132,7 @@ newEffect{
 		if self:attr("shield_factor") then eff.power = eff.power * (100 + self:attr("shield_factor")) / 100 end
 		if self:attr("shield_dur") then eff.dur = eff.dur + self:attr("shield_dur") end
 		self.displacement_shield = eff.power
+		self.displacement_shield_max = eff.power
 		self.displacement_shield_chance = eff.chance
 		--- Warning there can be only one time shield active at once for an actor
 		self.displacement_shield_target = eff.target
@@ -1149,6 +1150,7 @@ newEffect{
 	deactivate = function(self, eff)
 		self:removeParticles(eff.particle)
 		self.displacement_shield = nil
+		self.displacement_shield_max = nil
 		self.displacement_shield_chance = nil
 		self.displacement_shield_target = nil
 	end,
@@ -1172,12 +1174,14 @@ newEffect{
 		eff.tmpid = self:addTemporaryValue("damage_shield", eff.power)
 		--- Warning there can be only one time shield active at once for an actor
 		self.damage_shield_absorb = eff.power
+		self.damage_shield_absorb_max = eff.power
 		eff.particle = self:addParticles(Particles.new("damage_shield", 1))
 	end,
 	deactivate = function(self, eff)
 		self:removeParticles(eff.particle)
 		self:removeTemporaryValue("damage_shield", eff.tmpid)
 		self.damage_shield_absorb = nil
+		self.damage_shield_absorb_max = nil
 	end,
 }
 
@@ -1199,6 +1203,7 @@ newEffect{
 		eff.tmpid = self:addTemporaryValue("time_shield", eff.power)
 		--- Warning there can be only one time shield active at once for an actor
 		self.time_shield_absorb = eff.power
+		self.time_shield_absorb_max = eff.power
 		eff.particle = self:addParticles(Particles.new("time_shield", 1))
 	end,
 	deactivate = function(self, eff)
@@ -1211,6 +1216,7 @@ newEffect{
 
 		self:removeTemporaryValue("time_shield", eff.tmpid)
 		self.time_shield_absorb = nil
+		self.time_shield_absorb_max = 0
 	end,
 }
 
@@ -3428,11 +3434,14 @@ newEffect{
 		eff.kbid = self:addTemporaryValue("on_melee_hit", {[DamageType.REPULSION]= eff.power})
 		eff.particle = self:addParticles(Particles.new("gravity_focus", 1))
 		self.repulsion_shield_absorb = eff.power
+		self.repulsion_shield_absorb_max = eff.power
 	end,
 	deactivate = function(self, eff)
 		self:removeTemporaryValue("repulsion_shield", eff.tmpid)
 		self:removeTemporaryValue("on_melee_hit", eff.kbid)
 		self:removeParticles(eff.particle)
+		self.repulsion_shield_absorb = nil
+		self.repulsion_shield_absorb_max = nil
 	end,
 }