diff --git a/game/engines/default/engine/interface/ActorTalents.lua b/game/engines/default/engine/interface/ActorTalents.lua
index d2e427dea3a7cae4b310df84379ff63de10419a7..4602116607593edf0ed21edbdb89ad990e51eb0d 100644
--- a/game/engines/default/engine/interface/ActorTalents.lua
+++ b/game/engines/default/engine/interface/ActorTalents.lua
@@ -77,11 +77,11 @@ function _M:newTalent(t)
 	local info = t.info
 	t.info = function(self, t) return info(self, t):gsub("\n\t+", "\n") end
 
-	table.insert(self.talents_def, t)
-	t.id = #self.talents_def
-	assert(not self["T_"..t.short_name], "talent already exists with id T_"..t.short_name)
-	self["T_"..t.short_name] = #self.talents_def
-	print("[TALENT]", t.name, t.short_name, #self.talents_def)
+	t.id = "T_"..t.short_name
+	self.talents_def[t.id] = t
+	assert(not self[t.id], "talent already exists with id T_"..t.short_name)
+	self[t.id] = t.id
+	print("[TALENT]", t.name, t.short_name, t.id)
 
 	-- Register in the type
 	table.insert(self.talents_types_def[t.type[1]].talents, t)
diff --git a/game/modules/tome/data/chats/escort-quest.lua b/game/modules/tome/data/chats/escort-quest.lua
index 658860dd1f36f7e5d1c2674dd65f63905d08036e..f8c924fd82866e6c94c385f50d965ef085938e95 100644
--- a/game/modules/tome/data/chats/escort-quest.lua
+++ b/game/modules/tome/data/chats/escort-quest.lua
@@ -130,7 +130,11 @@ local function generate_rewards()
 	local answers = {}
 	if reward.stats then
 		for i = 1, #npc.stats_def do if reward.stats[i] then
-			local doit = function(npc, player) player.inc_stats[i] = (player.inc_stats[i] or 0) + reward.stats[i]; player.changed = true end
+			local doit = function(npc, player)
+				player.inc_stats[i] = (player.inc_stats[i] or 0) + reward.stats[i]
+				player.changed = true
+				player:hasQuest(npc.quest_id).reward_message = ("improved %s by +%d"):format(npc.stats_def[i].name, reward.stats[i])
+			end
 			answers[#answers+1] = {("[Improve %s by +%d]"):format(npc.stats_def[i].name, reward.stats[i]), jump="done", action=doit}
 		end end
 	end
@@ -142,6 +146,7 @@ local function generate_rewards()
 				local doit = function(npc, player)
 					player:learnTalent(tid, true, level)
 					if t.hide then player.__show_special_talents[tid] = true end
+					player:hasQuest(npc.quest_id).reward_message = ("%s talent %s (+%d level(s))"):format(game.player:knowTalent(tid) and "improved" or "learnt", t.name, level)
 				end
 				answers[#answers+1] = {("[%s talent %s (+%d level(s))]"):format(game.player:knowTalent(tid) and "Improve" or "Learn", t.name, level), jump="done", action=doit}
 			end
@@ -153,6 +158,7 @@ local function generate_rewards()
 			local doit = function(npc, player)
 				player:learnTalentType(tt, false)
 				player:setTalentTypeMastery(tt, mastery)
+				player:hasQuest(npc.quest_id).reward_message = ("gained talent category %s (at mastery %0.2f)"):format(cat:capitalize().." / "..tt_def.name:capitalize(), mastery)
 			end
 			local cat = tt_def.type:gsub("/.*", "")
 			answers[#answers+1] = {("[Allow training of talent category %s (at mastery %0.2f)]"):format(cat:capitalize().." / "..tt_def.name:capitalize(), mastery), jump="done", action=doit}
diff --git a/game/modules/tome/data/general/objects/egos/ammo.lua b/game/modules/tome/data/general/objects/egos/ammo.lua
index 438fed4c24e6d485ce8c2cc845355c3f661d8532..56f6338c48ad14b2b624789e1d30a0d55020e457 100644
--- a/game/modules/tome/data/general/objects/egos/ammo.lua
+++ b/game/modules/tome/data/general/objects/egos/ammo.lua
@@ -73,10 +73,10 @@ newEntity{
 	cost = 35,
 	wielder = {
 		ranged_project={
-			[DamageType.FIRE] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.1 * 0.7 end),
-			[DamageType.ICE] = resolvers.mbonus_material(15, 4, function(e, v) return v * 0.1 * 0.7 end),
-			[DamageType.ACID] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.1 * 0.7 end),
-			[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.1 * 0.7 end),
+			[DamageType.FIRE] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.1 * 0.7 * 0.3 end),
+			[DamageType.ICE] = resolvers.mbonus_material(15, 4, function(e, v) return v * 0.1 * 0.7 * 0.3 end),
+			[DamageType.ACID] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.1 * 0.7 * 0.3 end),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(25, 4, function(e, v) return v * 0.1 * 0.7 * 0.3 end),
 		},
 	},
 }
diff --git a/game/modules/tome/data/quests/escort-duty.lua b/game/modules/tome/data/quests/escort-duty.lua
index 4ee0b2eb7999255bcda08c279d013861702123b8..5d26371accbf3a11c1b339f7afd16241a7165d94 100644
--- a/game/modules/tome/data/quests/escort-duty.lua
+++ b/game/modules/tome/data/quests/escort-duty.lua
@@ -241,7 +241,16 @@ kind = {}
 name = ""
 desc = function(self, who)
 	local desc = {}
-	desc[#desc+1] = "Escort the "..self.kind.name.." to the recall portal on level "..self.level_name.."."
+	if self:isStatus(engine.Quest.DONE) then
+		desc[#desc+1] = "You successfully escorted the "..self.kind.name.." to the recall portal on level "..self.level_name.."."
+		if self.reward_message then
+			desc[#desc+1] = ("As a reward you %s."):format(self.reward_message)
+		end
+	elseif self:isStatus(engine.Quest.FAILED) then
+		desc[#desc+1] = "You failed to protect the "..self.kind.name.." from death by "..self.killing_npc.."."
+	else
+		desc[#desc+1] = "Escort the "..self.kind.name.." to the recall portal on level "..self.level_name.."."
+	end
 	return table.concat(desc, "\n")
 end
 
@@ -295,6 +304,7 @@ on_grant = function(self, who)
 	self.kind.actor.on_die = function(self, who)
 		game.logPlayer(game.player, "#LIGHT_RED#%s is dead, quest failed!", self.name:capitalize())
 		game.player:setQuestStatus(self.quest_id, engine.Quest.FAILED)
+		game.player:hasQuest(self.quest_id).killing_npc = who and who.name or "something"
 	end
 
 	-- Spawn actor
diff --git a/game/modules/tome/data/talents/spells/conveyance.lua b/game/modules/tome/data/talents/spells/conveyance.lua
index 06cca04e45e1d4a8b91fb4521c5c117d1057e631..4425f9948aa4025f56871c5c881b8d783ee0e3e9 100644
--- a/game/modules/tome/data/talents/spells/conveyance.lua
+++ b/game/modules/tome/data/talents/spells/conveyance.lua
@@ -69,7 +69,7 @@ newTalent{
 		end
 
 		if target ~= self then
-			target:setEffect(target.EFF_CONTINUUM_DESTABILIZATION, 100 , {power=20 - self:getTalentLevel(t)})
+			target:setEffect(target.EFF_CONTINUUM_DESTABILIZATION, 100, {power=self:combatSpellpower(0.3)})
 		end
 
 		game:playSoundNear(self, "talents/teleport")
@@ -137,7 +137,7 @@ newTalent{
 		end
 
 		if target ~= self then
-			target:setEffect(target.EFF_CONTINUUM_DESTABILIZATION, 100 , {power=20 - self:getTalentLevel(t)})
+			target:setEffect(target.EFF_CONTINUUM_DESTABILIZATION, 100, {power=self:combatSpellpower(0.3)})
 		end
 
 		game:playSoundNear(self, "talents/teleport")