diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua
index 2638b540eb4600cc8da6c6ac6d75802f3bdb7a1b..bd4f506650a4915e3af2cdbccb5f45613637e39a 100644
--- a/game/modules/tome/class/Player.lua
+++ b/game/modules/tome/class/Player.lua
@@ -100,11 +100,6 @@ function _M:onBirth(birther)
 			self.random_escort_levels[z[1]][z[2]] = true
 		end
 	end
-
-	if self.descriptor.world == "Tutorial" then
-		local d = require("engine.dialogs.ShowText").new("Tutorial: Movement", "tutorial/move")
-		game:registerDialog(d)
-	end
 end
 
 function _M:onEnterLevel(zone, level)
diff --git a/game/modules/tome/data/quests/tutorial.lua b/game/modules/tome/data/quests/tutorial.lua
index 6ff5344458b384cdef95b727ac0354248aba34b3..f5c1fe8f10b03ec5aef3cabbf8206d76d4125855 100644
--- a/game/modules/tome/data/quests/tutorial.lua
+++ b/game/modules/tome/data/quests/tutorial.lua
@@ -30,3 +30,8 @@ on_status_change = function(self, who, status, sub)
 		world:gainAchievement("TUTORIAL_DONE", game.player)
 	end
 end
+
+on_grant = function(self)
+	local d = require("engine.dialogs.ShowText").new("Tutorial: Movement", "tutorial/move")
+	game:registerDialog(d)
+end