diff --git a/game/engines/default/engine/Game.lua b/game/engines/default/engine/Game.lua
index 52f58237759e46ca3d97436f78933287d95fee1f..16185aa6e3ce036a0d8caf16608006763bfe187b 100644
--- a/game/engines/default/engine/Game.lua
+++ b/game/engines/default/engine/Game.lua
@@ -219,7 +219,12 @@ function _M:tick()
 
 	if self.cleanSounds then self:cleanSounds() end
 
-	-- Run tick end stuff
+	self:onTickEndExecute()
+end
+
+--- Run all registered tick end functions
+-- Usualy jsut let the engine call it
+function _M:onTickEndExecute()
 	if self.on_tick_end and #self.on_tick_end > 0 then
 		local fs = self.on_tick_end
 		self.on_tick_end = {}
diff --git a/game/engines/default/engine/init.lua b/game/engines/default/engine/init.lua
index d5f3d676cdd9299904ee3ce3d6a4de3ad83266f6..e9f7f3a12d8248081f2f4a4537c41d2d2edcf912 100644
--- a/game/engines/default/engine/init.lua
+++ b/game/engines/default/engine/init.lua
@@ -54,7 +54,7 @@ aa_text = true
 fbo_active = true
 shaders_active = true
 particles_density = 100
-background_saves = true
+background_saves = false
 mouse_cursor = true
 display_fps = 30
 gamma_correction = 120
diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index b432b965b2afb38b8b296726bac2d58a2088ba2d..02c4344798f9928890ab95d5fdd3f39af9e38e85 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -560,6 +560,9 @@ function _M:changeLevel(lev, zone, keep_old_lev, force_down, auto_zone_stair)
 		return
 	end
 
+	-- Finish stuff registered for the previous level
+	self:onTickEndExecute()
+
 	if self.zone and self.level then self.party:leftLevel() end
 
 	if game.player:isTalentActive(game.player.T_JUMPGATE) then