diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua
index 248857ad406142d7c1a2e54b63b575dd9e3d4293..a596d94825bd467554715b38afd2cc20fdc4d584 100644
--- a/game/modules/tome/class/Player.lua
+++ b/game/modules/tome/class/Player.lua
@@ -113,7 +113,7 @@ end
 function _M:onLeaveLevel(zone, level)
 	-- Fail past escort quests
 	local eid = "escort-duty-"..zone.short_name.."-"..level.level
-	if self.quests and self.quests[eid] then
+	if self.quests and self.quests[eid] and not self:hasQuest(eid):isEnded() then
 		local q = self.quests[eid]
 		q.abandoned = true
 		self:setQuestStatus(eid, q.FAILED)
diff --git a/game/modules/tome/data/quests/escort-duty.lua b/game/modules/tome/data/quests/escort-duty.lua
index a88bd8a4ece73e4aa2cb2a9f768d54e36cd6697f..a45d403caa33a0cd1f4200aa4c0bcf64a147df41 100644
--- a/game/modules/tome/data/quests/escort-duty.lua
+++ b/game/modules/tome/data/quests/escort-duty.lua
@@ -260,6 +260,7 @@ end
 
 on_status_change = function(self, who, status, sub)
 	if status == self.FAILED then
+		-- Remove the actor is we failed
 		for uid, e in pairs(game.level.entities) do
 			if e.quest_id and e.quest_id == self.id then
 				e:disappear()
diff --git a/game/modules/tome/resolvers.lua b/game/modules/tome/resolvers.lua
index 4178b89fc41a31bf29d4fc2da156a1612708b478..87685ab2ffd2051a6e55e43c15f6575a12f6ef1e 100644
--- a/game/modules/tome/resolvers.lua
+++ b/game/modules/tome/resolvers.lua
@@ -218,7 +218,6 @@ end
 function resolvers.calc.charges(tt, e)
 	e.max_power = rng.range(tt[1], tt[2])
 	e.power = e.max_power
-	print("creatin wand", e.name, e.egoed, e.max_power, e.cost_per_charge)
 	e.recharge_cost = (e.cost_per_charge or 0) * 4
 	e.cost = e.cost + (e.cost_per_charge or 0) * e.max_power
 	e.show_charges = true
diff --git a/ideas/quests.ods b/ideas/quests.ods
index 99797f15e2100e3bdcd58d1a169d9d0b2b4841dd..7d3dc905486b9c00b93796d1059c74ea784e6eef 100644
Binary files a/ideas/quests.ods and b/ideas/quests.ods differ