diff --git a/game/modules/tome/data/chats/sorcerer-end.lua b/game/modules/tome/data/chats/sorcerer-end.lua
index baf78bab94da09a3d5425e6d607aa7ea8ae1e8bf..c65395fbcd247580feaf8ab5ddd3157620cb0f84 100644
--- a/game/modules/tome/data/chats/sorcerer-end.lua
+++ b/game/modules/tome/data/chats/sorcerer-end.lua
@@ -51,6 +51,7 @@ The Way will never forget you. Now go and make history!
 			player:die(player)
 			player:setQuestStatus("high-peak", engine.Quest.COMPLETED, "yeek")
 			player:hasQuest("high-peak"):win("yeek-sacrifice")
+			game:saveGame()
 		end},
 		{"But... I did so much, I could do so much more for the Way by staying alive!", jump="yeek-unsure"},
 	}
@@ -66,6 +67,7 @@ You will do as asked, for the good of all Yeeks! The Way is always right.
 			player:die(player)
 			player:setQuestStatus("high-peak", engine.Quest.COMPLETED, "yeek")
 			player:hasQuest("high-peak"):win("yeek-sacrifice")
+			game:saveGame()
 		end},
 	}
 }
diff --git a/game/modules/tome/data/quests/high-peak.lua b/game/modules/tome/data/quests/high-peak.lua
index 12167caa3d4d8305828439e0ff7682a5ee4cd4bc..877839c44f33ebab112e21547573d43b5953f80a 100644
--- a/game/modules/tome/data/quests/high-peak.lua
+++ b/game/modules/tome/data/quests/high-peak.lua
@@ -46,7 +46,7 @@ end
 
 on_status_change = function(self, who, status, sub)
 	if sub then
-		if self:isCompleted("elandar-dead") and self:isCompleted("argoniel-dead") then
+		if self:isCompleted("elandar-dead") and self:isCompleted("argoniel-dead") and not who:isQuestStatus("high-peak", engine.Quest.DONE) then
 			who:setQuestStatus(self.id, engine.Quest.DONE)
 
 			-- Remove all remaining hostiles