diff --git a/game/modules/tome/data/general/objects/scrolls.lua b/game/modules/tome/data/general/objects/scrolls.lua
index 46fe0aecfa2082b94b623df5401e1f8acd5ae07c..b41b96e52a1d273478bcdc9b22efc4f732edcd54 100644
--- a/game/modules/tome/data/general/objects/scrolls.lua
+++ b/game/modules/tome/data/general/objects/scrolls.lua
@@ -85,9 +85,30 @@ newEntity{ base = "BASE_SCROLL",
 	end}
 }
 
+newEntity{ base = "BASE_SCROLL",
+	name = "scroll of controlled phase door",
+	level_range = {30, 50},
+	rarity = 7,
+	cost = 3,
+
+	use_simple = { name="teleport you randomly over a short distance into a targeted area", use = function(self, who)
+		local tg = {type="ball", nolock=true, no_restrict=true, nowarning=true, range=10 + who:getMag(10), radius=3}
+		x, y = who:getTarget(tg)
+		if not x then return nil end
+		-- Target code doesnot restrict the target coordinates to the range, it lets the poject function do it
+		-- but we cant ...
+		local _ _, x, y = who:canProject(tg, x, y)
+		game.level.map:particleEmitter(who.x, who.y, 1, "teleport")
+		who:teleportRandom(x, y, 3)
+		game.level.map:particleEmitter(who.x, who.y, 1, "teleport")
+		game.logSeen(who, "%s reads a %s!", who.name:capitalize(), self:getName{no_count=true})
+		return "destroy", true
+	end}
+}
+
 newEntity{ base = "BASE_SCROLL",
 	name = "scroll of teleportation",
-	level_range = {10, 40},
+	level_range = {10, 50},
 	rarity = 8,
 	cost = 4,
 
diff --git a/game/modules/tome/data/talents/corruptions/scourge.lua b/game/modules/tome/data/talents/corruptions/scourge.lua
index a400c50f50ae7aff5532b37572be0fa86d4196b3..d1165791155f4fafc03400a80164ba9614dd0ba4 100644
--- a/game/modules/tome/data/talents/corruptions/scourge.lua
+++ b/game/modules/tome/data/talents/corruptions/scourge.lua
@@ -71,17 +71,17 @@ newTalent{
 	mode = "sustained",
 	require = corrs_req2,
 	points = 5,
-	vim = 40,
+	sustain_vim = 40,
 	cooldown = 30,
 	activate = function(self, t)
 		game:playSoundNear(self, "talents/slime")
 		local ret = {
-			per = self:addTemporaryValue("inc_damage", {[DamageType.BLIGHT] = self:combatTalentSpellDamage(t, 15, 40)}),
+			per = self:addTemporaryValue("melee_project", {[DamageType.BLIGHT] = self:combatTalentSpellDamage(t, 15, 40)}),
 		}
 		return ret
 	end,
 	deactivate = function(self, t, p)
-		self:removeTemporaryValue("inc_damage", p.per)
+		self:removeTemporaryValue("melee_project", p.per)
 		return true
 	end,
 	info = function(self, t)
diff --git a/game/modules/tome/data/zones/valley-moon/npcs.lua b/game/modules/tome/data/zones/valley-moon/npcs.lua
index efd5525673d038478302e26e358557dfb9e01e86..13757563fd6ef3f72efa92b65ec38b2555e45333 100644
--- a/game/modules/tome/data/zones/valley-moon/npcs.lua
+++ b/game/modules/tome/data/zones/valley-moon/npcs.lua
@@ -80,6 +80,7 @@ newEntity{ define_as = "LIMMIR",
 	stats = { str=15, dex=10, cun=12, mag=16, con=14 },
 	move_others=true,
 	knockback_immune = 1,
+	teleport_immune = 1,
 
 	open_door = true,