diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 01fe1985d068fbfe930f8857b634e3c2c30eab7d..47dc2b2a997e316bbe90df3f5cc3d692ad09d9a9 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -1952,7 +1952,7 @@ function _M:setAllowedBuild(what, notify)
 end
 
 function _M:playSoundNear(who, name)
-	if who and not who:attr("_forbid_sounds") and self.level and self.level.map.seens(who.x, who.y) then
+	if who and (not who.attr or not who:attr("_forbid_sounds")) and self.level and self.level.map.seens(who.x, who.y) then
 		local pos = {x=0,y=0,z=0}
 		if self.player and self.player.x then pos.x, pos.y = who.x - self.player.x, who.y - self.player.y end
 		self:playSound(name, pos)
diff --git a/game/modules/tome/data/talents/psionic/distortion.lua b/game/modules/tome/data/talents/psionic/distortion.lua
index 92302a3e08b5bafc42236c979dc9f71bee50d4cc..58e91236f10d00cbefa78a773a4322d5d9255268 100644
--- a/game/modules/tome/data/talents/psionic/distortion.lua
+++ b/game/modules/tome/data/talents/psionic/distortion.lua
@@ -223,7 +223,7 @@ newTalent{
 		e.particles = game.level.map:particleEmitter(x, y, e.radius, "generic_vortex", {radius=e.radius, rm=255, rM=255, gm=180, gM=255, bm=180, bM=255, am=35, aM=90})
 		game.level:addEntity(e)
 		game.level.map(x, y, Map.TERRAIN, e)
-		game.nicer_tiles:updateAround(game.level, x, y)
+		--game.nicer_tiles:updateAround(game.level, x, y)
 		game.level.map:updateMap(x, y)
 		game:playSoundNear(self, "talents/lightning_loud")
 		return true
diff --git a/game/modules/tome/data/zones/thieves-tunnels/npcs.lua b/game/modules/tome/data/zones/thieves-tunnels/npcs.lua
index 40448b71d7f9d85eeb3b09964fea1671454a4b0d..c079271942c9108b9acbdcbf8fc5269e2c93e927 100644
--- a/game/modules/tome/data/zones/thieves-tunnels/npcs.lua
+++ b/game/modules/tome/data/zones/thieves-tunnels/npcs.lua
@@ -69,7 +69,13 @@ newEntity{ define_as = "ASSASSIN_LORD",
 	can_talk = "assassin-lord",
 
 	on_die = function(self, who)
-		game.level.map(self.x, self.y, game.level.map.TERRAIN, game.zone.grid_list.UP_WILDERNESS)
+		local oe = game.level.map(self.x, self.y, game.level.map.TERRAIN)
+		local g = game.zone.grid_list.UP_WILDERNESS
+		if oe and oe:attr("temporary") and oe.old_feat then 
+			oe.old_feat = g
+		else
+			game.level.map(self.x, self.y, game.level.map.TERRAIN, g)
+		end
 		game.logSeen(who, "As the assassin dies the magical veil protecting the stairs out vanishes.")
 		for uid, e in pairs(game.level.entities) do
 			if e.is_merchant and not e.dead then