diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 161643e3945bef020fdbd80b1a26b2375bd96ffe..a4b4a69ab19bf831008182a9167bb893f0f753fc 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -3552,8 +3552,9 @@ end
 
 function _M:addShaderAura(kind, shader, shader_args, ...)
 	if not core.shader.active(4) then return false end
-
 	self.shader_auras = self.shader_auras or {}
+	if self.shader_auras[kind] then return false end
+
 	local textures = {...}
 	for i = 1, #textures do
 		if type(textures[i]) == "string" then textures[i] = {"image", textures[i]} end
diff --git a/game/modules/tome/data/birth/classes/warrior.lua b/game/modules/tome/data/birth/classes/warrior.lua
index 31239bc6ec9bbeb4ed75cc799d406d0beb549f61..2aee97ecec184c1a265d152491395c97b055e449 100644
--- a/game/modules/tome/data/birth/classes/warrior.lua
+++ b/game/modules/tome/data/birth/classes/warrior.lua
@@ -100,6 +100,12 @@ newBirthDescriptor{
 		"#LIGHT_BLUE# * +0 Magic, +0 Willpower, +0 Cunning",
 		"#GOLD#Life per level:#LIGHT_BLUE# +2",
 	},
+	birth_example_particles = {
+		function(actor) if core.shader.active(4) then
+			actor:addParticles(Particles.new("shader_shield", 1, {toback=true,  size_factor=1, img="rotating_shield"}, {type="rotatingshield", noup=2.0, appearTime=0.2}))
+			actor:addParticles(Particles.new("shader_shield", 1, {toback=false, size_factor=1, img="rotating_shield"}, {type="rotatingshield", noup=1.0, appearTime=0.2}))
+		end end,
+	},
 	power_source = {technique=true},
 	stats = { str=5, con=2, dex=2, },
 	talents_types = {
diff --git a/game/modules/tome/data/gfx/particles_images/rotating_shield.png b/game/modules/tome/data/gfx/particles_images/rotating_shield.png
index 5dc7f5f505161f8b88c318451062c5d3bff29785..a2681f3b38e6a68e2e5f24ffb6bd76fa93d5eab4 100644
Binary files a/game/modules/tome/data/gfx/particles_images/rotating_shield.png and b/game/modules/tome/data/gfx/particles_images/rotating_shield.png differ