diff --git a/game/engines/default/engine/Projectile.lua b/game/engines/default/engine/Projectile.lua
index fef0038d15dc433d21cebf074cd6bce9aebc8953..7314acdae18eed6e37aeee0614da5b7567717c9c 100644
--- a/game/engines/default/engine/Projectile.lua
+++ b/game/engines/default/engine/Projectile.lua
@@ -87,6 +87,12 @@ function _M:move(x, y, force)
 		self:addParticles(Particles.new(self.travel_particle, 1, nil))
 		self.travel_particle = nil
 	end
+	if self.trail_particle then
+		local ps = Particles.new(self.trail_particle, 1, nil)
+		ps.x = x
+		ps.y = y
+		game.level.map:addParticleEmitter(ps)
+	end
 
 	-- Update particle emitters attached to that actor
 	local del = {}
@@ -178,6 +184,7 @@ function _M:makeProject(src, display, def, do_move, do_act, do_stop)
 		name = name,
 		display = display.display or ' ', color = display.color or colors.WHITE, image = display.image or nil,
 		travel_particle = display.particle,
+		trail_particle = display.trail,
 		src = src,
 		src_x = src.x, src_y = src.y,
 		project = {def=def},
diff --git a/game/modules/tome/data/gfx/particles/firetrail.lua b/game/modules/tome/data/gfx/particles/firetrail.lua
new file mode 100644
index 0000000000000000000000000000000000000000..627a958d8e21293a804a180164c2c015ea1b1c6b
--- /dev/null
+++ b/game/modules/tome/data/gfx/particles/firetrail.lua
@@ -0,0 +1,56 @@
+-- ToME - Tales of Middle-Earth
+-- Copyright (C) 2009, 2010 Nicolas Casalini
+--
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation, either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program.  If not, see <http://www.gnu.org/licenses/>.
+--
+-- Nicolas Casalini "DarkGod"
+-- darkgod@te4.org
+
+local nb = 0
+
+return { generator = function()
+	local radius = 0
+	local sradius = (radius + 0.5) * (engine.Map.tile_w + engine.Map.tile_h) / 2
+	local ad = rng.float(0, 360)
+	local a = math.rad(ad)
+	local r = rng.float(0.1, sradius / 2)
+	local x = r * math.cos(a)
+	local y = r * math.sin(a)
+	local bx = math.floor(x / engine.Map.tile_w)
+	local by = math.floor(y / engine.Map.tile_h)
+	local static = rng.percent(40)
+
+	return {
+		trail = 1,
+		life = 3 + 9 * (sradius - r) / sradius,
+		size = 3, sizev = 0, sizea = 0,
+
+		x = x, xv = 0, xa = 0,
+		y = y, yv = 0, ya = 0,
+		dir = 0, dirv = 0, dira = 0,
+		vel = 0, velv = 0, vela = 0,
+
+		r = rng.range(200, 255)/255,   rv = 0, ra = 0,
+		g = rng.range(120, 170)/255,   gv = 0.005, ga = 0.0005,
+		b = rng.range(0, 10)/255,      bv = 0, ba = 0,
+		a = rng.range(25, 220)/255,    av = static and -0.034 or 0, aa = 0.005,
+	}
+end, },
+function(self)
+	if nb < 1 then
+		self.ps:emit(40)
+	end
+	nb = nb + 1
+end,
+40
diff --git a/game/modules/tome/data/talents/spells/fire.lua b/game/modules/tome/data/talents/spells/fire.lua
index d424d2d6c1e596a2d49c6df0e31e6978a10be298..d480b39f3b1ee666bbfdfee7cc52e0847f348bb5 100644
--- a/game/modules/tome/data/talents/spells/fire.lua
+++ b/game/modules/tome/data/talents/spells/fire.lua
@@ -32,7 +32,7 @@ newTalent{
 	reflectable = true,
 	proj_speed = 20,
 	action = function(self, t)
-		local tg = {type="bolt", range=self:getTalentRange(t), talent=t, display={particle="bolt_fire"}}
+		local tg = {type="bolt", range=self:getTalentRange(t), talent=t, display={particle="bolt_fire", trail="firetrail"}}
 		local x, y = self:getTarget(tg)
 		if not x or not y then return nil end
 		self:projectile(tg, x, y, DamageType.FIREBURN, self:spellCrit(self:combatTalentSpellDamage(t, 25, 290)), {type="flame"})