diff --git a/game/modules/tome/data/talents/spells/temporal.lua b/game/modules/tome/data/talents/spells/temporal.lua
index 66319365e5eeb3551fc2915dfa4cf4e51e395f3b..38ec3baded97f15801b71f8c8eb0e1c71d6aa41b 100644
--- a/game/modules/tome/data/talents/spells/temporal.lua
+++ b/game/modules/tome/data/talents/spells/temporal.lua
@@ -23,7 +23,7 @@ newTalent{
 	require = spells_req1,
 	points = 5,
 	random_ego = "utility",
-	mana = 20,
+	mana = 10,
 	cooldown = 30,
 	tactical = { DISABLE = 2 },
 	reflectable = true,
@@ -57,31 +57,29 @@ newTalent{
 	type = {"spell/temporal", 2},
 	require = spells_req2,
 	points = 5,
-	mana = 50,
+	mana = 25,
 	cooldown = 18,
 	tactical = { DEFEND = 2 },
 	range = 10,
 	no_energy = true,
 	getMaxAbsorb = function(self, t) return 50 + self:combatTalentSpellDamage(t, 50, 450) end,
 	getDuration = function(self, t) return util.bound(5 + math.floor(self:getTalentLevel(t)), 5, 15) end,
-	getDotDuration = function(self, t) return util.bound(4 + math.floor(self:getTalentLevel(t)), 4, 12) end,
-	getTimeReduction = function(self, t) return util.bound(15 + math.floor(self:getTalentLevel(t) * 2), 15, 35) end,
+	getTimeReduction = function(self, t) return 25 + util.bound(15 + math.floor(self:getTalentLevel(t) * 2), 15, 35) end,
 	action = function(self, t)
-		self:setEffect(self.EFF_TIME_SHIELD, t.getDuration(self, t), {power=t.getMaxAbsorb(self, t), dot_dur=t.getDotDuration(self, t), time_reducer=t.getTimeReduction(self, t)})
+		self:setEffect(self.EFF_TIME_SHIELD, t.getDuration(self, t), {power=t.getMaxAbsorb(self, t), dot_dur=5, time_reducer=t.getTimeReduction(self, t)})
 		game:playSoundNear(self, "talents/spell_generic")
 		return true
 	end,
 	info = function(self, t)
 		local maxabsorb = t.getMaxAbsorb(self, t)
 		local duration = t.getDuration(self, t)
-		local dotdur = t.getDotDuration(self,t)
 		local time_reduc = t.getTimeReduction(self,t)
 		return ([[This intricate spell instantly erects a time shield around the caster, preventing any incoming damage and sending it forward in time.
-		Once either the maximum damage (%d) is absorbed, or the time runs out (%d turns), the stored damage will return as a temporal wake over time (%d turns).
-		Each turn the temporal wake is active, a temporal vortex will spawn at your feet, damaging any inside after one turn for three turns.
+		Once either the maximum damage (%d) is absorbed, or the time runs out (%d turns), the stored damage will return as a temporal restoration field over time (5 turns).
+		Each turn the restoration field is active, you get healed for 10%% of the absorbed damage (Aegis Shielding talent affects the percentage).
 		While under the effect of Time Shield, all newly applied magical, physical and mental effects will have their durations reduced by %d%%.
 		The shield's max absorption will increase with your Spellpower.]]):
-		format(maxabsorb, duration, dotdur, time_reduc)
+		format(maxabsorb, duration, time_reduc)
 	end,
 }
 
@@ -91,7 +89,7 @@ newTalent{
 	require = spells_req3,
 	points = 5,
 	random_ego = "utility",
-	mana = 120,
+	mana = 100,
 	cooldown = 40,
 	tactical = { DISABLE = 1, ESCAPE = 3, PROTECT = 3 },
 	range = 10,
diff --git a/game/modules/tome/data/timed_effects/other.lua b/game/modules/tome/data/timed_effects/other.lua
index 0e5d0fff5b1314f3fd7e9d8012637e7ae7003f94..8499dc51f370cb503aed2a3321fcc14f25fdf34e 100644
--- a/game/modules/tome/data/timed_effects/other.lua
+++ b/game/modules/tome/data/timed_effects/other.lua
@@ -139,10 +139,13 @@ newEffect{
 		self:removeTemporaryValue("reduce_status_effects_time", eff.durid)
 
 		self:removeParticles(eff.particle)
-		-- Time shield ends, setup a dot if needed
+
+		-- Time shield ends, setup a restoration field if needed
 		if eff.power - self.time_shield_absorb > 0 then
-			print("Time shield dot", eff.power - self.time_shield_absorb, (eff.power - self.time_shield_absorb) / eff.dot_dur)
-			self:setEffect(self.EFF_TIME_DOT, eff.dot_dur, {power=(eff.power - self.time_shield_absorb) / eff.dot_dur})
+			local val = (eff.power - self.time_shield_absorb) / eff.dot_dur / 2
+			if self:attr("shield_factor") then val = val * (100 + self:attr("shield_factor")) / 100 end
+			print("Time shield restoration field", eff.power - self.time_shield_absorb, val)
+			self:setEffect(self.EFF_TIME_DOT, eff.dot_dur, {power=val})
 		end
 
 		self:removeTemporaryValue("time_shield", eff.tmpid)
@@ -153,14 +156,14 @@ newEffect{
 
 newEffect{
 	name = "TIME_DOT",
-	desc = "Temporal Wake",
-	long_desc = function(self, eff) return ("The time distortion protecting the target has ended. All damage forwarded in time is now appearing as temporal vortexes each turn. Temporal Vortexes do %0.2f temporal damage per turn for 3 turn."):format(eff.power) end,
+	desc = "Temporal Restoration Field",
+	long_desc = function(self, eff) return ("The time distortion has created a restoration field, healing the target for %d each turn."):format(eff.power) end,
 	type = "other",
 	subtype = { time=true },
-	status = "detrimental",
+	status = "beneficial",
 	parameters = { power=10 },
-	on_gain = function(self, err) return "The powerful time-altering energies come crashing down on #target#.", "+Temporal Wake" end,
-	on_lose = function(self, err) return "The fabric of time around #target# returns to normal.", "-Temporal Wake" end,
+	on_gain = function(self, err) return "The powerful time-altering energies generate a restoration field on #target#.", "+Temporal Restoration Field" end,
+	on_lose = function(self, err) return "The fabric of time around #target# returns to normal.", "-Temporal Restoration Field" end,
 	activate = function(self, eff)
 		eff.particle = self:addParticles(Particles.new("time_shield", 1))
 	end,
@@ -168,15 +171,7 @@ newEffect{
 		self:removeParticles(eff.particle)
 	end,
 	on_timeout = function(self, eff)
-		-- Add a lasting map effect
-		game.level.map:addEffect(self,
-			self.x, self.y, 3,
-			DamageType.TEMPORAL, eff.power,
-			0,
-			5, nil,
-			{type="temporal_vortex"},
-			nil, true
-		)
+		self:heal(eff.power)
 	end,
 }