diff --git a/game/engines/default/engine/Map.lua b/game/engines/default/engine/Map.lua
index e1ce023215946cb246f5fe0becde4a7b542e1e1f..a9f0de62f266efe780016ce5570651a52ca81978 100644
--- a/game/engines/default/engine/Map.lua
+++ b/game/engines/default/engine/Map.lua
@@ -700,16 +700,18 @@ function _M:checkEntity(x, y, pos, what, ...)
 end
 
 --- Lite all grids
-function _M:liteAll(x, y, w, h)
+function _M:liteAll(x, y, w, h, v)
+	if v == nil then v = true end
 	for i = x, x + w - 1 do for j = y, y + h - 1 do
-		self.lites(i, j, true)
+		self.lites(i, j, v)
 	end end
 end
 
 --- Remember all grids
-function _M:rememberAll(x, y, w, h)
+function _M:rememberAll(x, y, w, h, v)
+	if v == nil then v = true end
 	for i = x, x + w - 1 do for j = y, y + h - 1 do
-		self.remembers(i, j, true)
+		self.remembers(i, j, v)
 	end end
 end
 
diff --git a/game/engines/default/engine/UserChat.lua b/game/engines/default/engine/UserChat.lua
index 2ec2da70a9d7d2c7b39afc6b5922b226232ead81..1763709e65011a62e709fb26e3761470847c54d8 100644
--- a/game/engines/default/engine/UserChat.lua
+++ b/game/engines/default/engine/UserChat.lua
@@ -412,15 +412,16 @@ function _M:mouseEvent(button, x, y, xrel, yrel, bx, by, event)
 	else
 		if not self.on_mouse or not self.dlist then return end
 		local citem = nil
+		local ci
 		for i = 1, #self.dlist do
 			local item = self.dlist[i]
-			if item.dh and by >= item.dh - self.mouse.delegate_offset_y then citem = self.dlist[i].src break end
+			if item.dh and by >= item.dh - self.mouse.delegate_offset_y then citem = self.dlist[i].src ci=i break end
 		end
 		print("================================")
 		util.show_backtrace()
 		for i = 1, #self.dlist do
 			local item = self.dlist[i]
-			if item.dh then print("===", y, by, item.dh - self.mouse.delegate_offset_y) end
+			if item.dh then print("===", y, by, item.dh - self.mouse.delegate_offset_y, ci==i and "*****" or "") end
 		end
 		self.on_mouse(citem and citem.login and self.channels[self.cur_channel].users[citem.login], citem and citem.login and citem, button, event, x, y, xrel, yrel, bx, by)
 	end
diff --git a/game/modules/tome/class/uiset/Minimalist.lua b/game/modules/tome/class/uiset/Minimalist.lua
index 0b2275e70fea73ec0c2cbadbd015d39078ff47ab..f568cb353060cb535a71395418ac0b8743177a6a 100644
--- a/game/modules/tome/class/uiset/Minimalist.lua
+++ b/game/modules/tome/class/uiset/Minimalist.lua
@@ -1784,6 +1784,7 @@ function _M:setupMouse(mouse)
 	-- Chat tooltips
 	profile.chat:onMouse(function(user, item, button, event, x, y, xrel, yrel, bx, by)
 		local mx, my = core.mouse.get()
+		print(">>??", item, user, item and item.faded)
 		if not item or not user or item.faded == 0 then game.mouse:delegate(button, mx, my, xrel, yrel, nil, nil, event, "playmap") return end
 
 		local str = tstring{{"color","GOLD"}, {"font","bold"}, user.name, {"color","LAST"}, {"font","normal"}, true}
@@ -1808,6 +1809,7 @@ function _M:setupMouse(mouse)
 				extra.add_map_action = { name="Show chat user", fct=function() profile.chat:showUserInfo(user.login) end }
 			end
 		end
+		game.tooltip.old_tmx = -100
 		game.mouse:delegate(button, mx, my, xrel, yrel, nil, nil, event, "playmap", extra)
 	end)
 end
diff --git a/game/modules/tome/data/achievements/player.lua b/game/modules/tome/data/achievements/player.lua
index c4991a0d030f92fcb7994c6a02004260ed9671c8..ab64057f6098b35905d83ccd96225a852f12b435 100644
--- a/game/modules/tome/data/achievements/player.lua
+++ b/game/modules/tome/data/achievements/player.lua
@@ -100,3 +100,9 @@ newAchievement{
 	show = "name",
 	desc = [[Linking yourself in the ingame chat.]],
 }
+
+newAchievement{
+	name = "Fear me not!", id = "FEARSCAPE",
+	show = "full",
+	desc = [[Survive the Fearscape!]],
+}
diff --git a/game/modules/tome/data/talents/corruptions/shadowflame.lua b/game/modules/tome/data/talents/corruptions/shadowflame.lua
index 3ad33e504b7e0940657ce320da076f85f39fb889..14d1a8be2296dd6fdcaeae2d46ad978f2978e546 100644
--- a/game/modules/tome/data/talents/corruptions/shadowflame.lua
+++ b/game/modules/tome/data/talents/corruptions/shadowflame.lua
@@ -207,6 +207,7 @@ newTalent{
 				game:onTickEnd(function()
 					if self.demon_plane_on_die then self:demon_plane_on_die(unpack(args)) end
 					self.on_die, self.demon_plane_on_die = self.demon_plane_on_die, nil
+					if not game.party:hasMember(self) then world:gainAchievement("FEARSCAPE", game:getPlayer(true)) end
 				end)
 			end
 
@@ -223,7 +224,6 @@ newTalent{
 	end,
 	deactivate = function(self, t, p)
 		game:onTickEnd(function()
-				game.log("===exiting===")
 			-- Collect objects
 			local objs = {}
 			for i = 0, game.level.map.w - 1 do for j = 0, game.level.map.h - 1 do