diff --git a/game/engines/default/engine/PlayerProfile.lua b/game/engines/default/engine/PlayerProfile.lua
index 3b25890119904fa22c3fd5c4b25210a4ac36caa9..55a6ca9d151d456778ba3f6d7a11ab283fa872b1 100644
--- a/game/engines/default/engine/PlayerProfile.lua
+++ b/game/engines/default/engine/PlayerProfile.lua
@@ -100,9 +100,12 @@ function _M:start()
 		self:tryAuth()
 		self:waitFirstAuth()
 	elseif core.steam and self.generic.onlinesteam and self.generic.onlinesteam.autolog then
-		self.steam_token = core.steam.sessionTicket():toHex()
-		self:tryAuth()
-		self:waitFirstAuth()
+		local ticket = core.steam.sessionTicket()
+		if ticket then
+			self.steam_token = ticket:toHex()
+			self:tryAuth()
+			self:waitFirstAuth()
+		end
 	end
 end
 
diff --git a/game/engines/default/modules/boot/dialogs/MainMenu.lua b/game/engines/default/modules/boot/dialogs/MainMenu.lua
index a5057334cde661e82f054bebf505202f70b67e85..01791639e7f16cc55e5bdb5e2a9020cd907a3691 100644
--- a/game/engines/default/modules/boot/dialogs/MainMenu.lua
+++ b/game/engines/default/modules/boot/dialogs/MainMenu.lua
@@ -138,8 +138,13 @@ function _M:login()
 end
 
 function _M:loginSteam()
+	local ticket = core.steam.sessionTicket()
+	if not ticket then
+		Dialog:simplePopup("Steam", "Steam client not found.")
+		return
+	end
 	local d = self:simpleWaiter("Login...", "Login in your account, please wait...") core.display.forceRedraw()
-	profile:performloginSteam((core.steam.sessionTicket():toHex()))
+	profile:performloginSteam((ticket:toHex()))
 	profile:waitFirstAuth()
 	d:done()
 	if not profile.auth and profile.auth_last_error then
diff --git a/game/engines/default/modules/boot/dialogs/ProfileSteamRegister.lua b/game/engines/default/modules/boot/dialogs/ProfileSteamRegister.lua
index 287813e4c84c403fe7fdb0c4f9dd16630d4accd2..b2356274b28ed17c9124cee2c2917788c7c617ce 100644
--- a/game/engines/default/modules/boot/dialogs/ProfileSteamRegister.lua
+++ b/game/engines/default/modules/boot/dialogs/ProfileSteamRegister.lua
@@ -70,8 +70,14 @@ function _M:okclick()
 		return
 	end
 
+	local ticket = core.steam.sessionTicket()
+	if not ticket then
+		Dialog:simplePopup("Steam", "Steam client not found.")
+		return
+	end
+
 	local d = self:simpleWaiter("Registering...", "Registering on http://te4.org/, please wait...") core.display.forceRedraw()
-	profile:performloginSteam(core.steam.sessionTicket():toHex(), self.c_login.text, self.c_email.text ~= "" and self.c_email.text)
+	profile:performloginSteam(ticket:toHex(), self.c_login.text, self.c_email.text ~= "" and self.c_email.text)
 	profile:waitFirstAuth()
 	d:done()
 	if not profile.auth and profile.auth_last_error then
diff --git a/game/modules/tome/data/gfx/ui/targetshader.png b/game/modules/tome/data/gfx/ui/targetshader.png
index 99db06ac533b4c45731ad11bb84d02a8b70b7749..4fcc408dd9298a1cce7fe60691e857d8a7d23367 100644
Binary files a/game/modules/tome/data/gfx/ui/targetshader.png and b/game/modules/tome/data/gfx/ui/targetshader.png differ
diff --git a/game/modules/tome/data/talents/cunning/lethality.lua b/game/modules/tome/data/talents/cunning/lethality.lua
index d442e5678f407fee8f5bae167b0700305dd81f53..b473183f033ea3125a57692050827b3f9ab0cf09 100644
--- a/game/modules/tome/data/talents/cunning/lethality.lua
+++ b/game/modules/tome/data/talents/cunning/lethality.lua
@@ -108,13 +108,13 @@ newTalent{
 	stamina = 50,
 	cooldown = 50,
 	tactical = { BUFF = 1 },
-	getTalentCount = function(self, t) return math.floor(self:combatTalentScale(t, 2, 10.1, "log", 0, 2)) end,
+	getTalentCount = function(self, t) return math.floor(self:combatTalentScale(t, 2, 7, "log")) end,
 	getMaxLevel = function(self, t) return self:getTalentLevel(t) end,
 	action = function(self, t)
 		local tids = {}
 		for tid, _ in pairs(self.talents_cd) do
 			local tt = self:getTalentFromId(tid)
-			if self:getTalentLevel(tt) <= t.getMaxLevel(self, t) and (tt.type[1]:find("^cunning/") or tt.type[1]:find("^technique/")) then
+			if tt.type[2] <= t.getMaxLevel(self, t) and (tt.type[1]:find("^cunning/") or tt.type[1]:find("^technique/")) then
 				tids[#tids+1] = tid
 			end
 		end
@@ -129,7 +129,7 @@ newTalent{
 	info = function(self, t)
 		local talentcount = t.getTalentCount(self, t)
 		local maxlevel = t.getMaxLevel(self, t)
-		return ([[Your quick wits allow you to reset the cooldown of up to %d of your combat talents (cunning or technique) of talent level %0.1f or less.]]):
+		return ([[Your quick wits allow you to reset the cooldown of up to %d of your combat talents (cunning or technique) of tier %d or less.]]):
 		format(talentcount, maxlevel)
 	end,
 }
diff --git a/game/modules/tome/data/talents/gifts/call.lua b/game/modules/tome/data/talents/gifts/call.lua
index 27fceffdc9815cd592b9afff4417da8f5532cdf4..b39089dbbf95950c8877b5c46346538229206a7c 100644
--- a/game/modules/tome/data/talents/gifts/call.lua
+++ b/game/modules/tome/data/talents/gifts/call.lua
@@ -142,7 +142,7 @@ newTalent{
 	cooldown = 50,
 	range = 10,
 	tactical = { BUFF = 2 },
-	nbTalents = function(self, t) return math.floor(self:combatTalentScale(t, 3, 7, "log")) end,
+	getTalentCount = function(self, t) return math.floor(self:combatTalentScale(t, 2, 7, "log")) end,
 	getMaxLevel = function(self, t) return self:getTalentLevel(t) end,
 	action = function(self, t)
 		local nb = t.nbTalents(self, t)
@@ -150,7 +150,7 @@ newTalent{
 		local tids = {}
 		for tid, _ in pairs(self.talents_cd) do
 			local tt = self:getTalentFromId(tid)
-			if self:getTalentLevel(tt) <= maxlev and tt.type[1]:find("^wild%-gift/") then
+			if tt.type[2] <= maxlev and tt.type[1]:find("^wild%-gift/") then
 				tids[#tids+1] = tid
 			end
 		end
@@ -164,7 +164,7 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Your deep link with Nature allows you to reset the cooldown of %d of your wild gifts of talent level %d or less.]]):
+		return ([[Your deep link with Nature allows you to reset the cooldown of %d of your wild gifts of tier %d or less.]]):
 		format(t.nbTalents(self, t), t.getMaxLevel(self, t))
 	end,
 }
diff --git a/game/modules/tome/data/talents/spells/meta.lua b/game/modules/tome/data/talents/spells/meta.lua
index 538cdd46867f6c806989f111fde95049f5955a4c..8f1fc24e7a06eea1b2f652c2cc85409fb6a7584b 100644
--- a/game/modules/tome/data/talents/spells/meta.lua
+++ b/game/modules/tome/data/talents/spells/meta.lua
@@ -155,17 +155,17 @@ newTalent{
 	name = "Metaflow",
 	type = {"spell/meta",4},
 	require = spells_req4,
-	points = 5,
+	points = 50,
 	mana = 70,
 	cooldown = 50,
 	tactical = { BUFF = 2 },
-	getTalentCount = function(self, t) return math.floor(self:combatTalentScale(t, 3, 7)) end,
+	getTalentCount = function(self, t) return math.floor(self:combatTalentScale(t, 2, 7, "log")) end,
 	getMaxLevel = function(self, t) return self:getTalentLevel(t) end,
 	action = function(self, t)
 		local tids = {}
 		for tid, _ in pairs(self.talents_cd) do
 			local tt = self:getTalentFromId(tid)
-			if self:getTalentLevel(tt) <= t.getMaxLevel(self, t) and tt.is_spell then
+			if tt.type[2] <= t.getMaxLevel(self, t) and tt.is_spell then
 				tids[#tids+1] = tid
 			end
 		end
@@ -181,7 +181,7 @@ newTalent{
 	info = function(self, t)
 		local talentcount = t.getTalentCount(self, t)
 		local maxlevel = t.getMaxLevel(self, t)
-		return ([[Your mastery of the arcane flows allow you to reset the cooldown of %d of your spells of talent level %0.1f or less.]]):
+		return ([[Your mastery of the arcane flows allow you to reset the cooldown of %d of your spells of tier %d or less.]]):
 		format(talentcount, maxlevel)
 	end,
 }
diff --git a/game/profile-thread/Client.lua b/game/profile-thread/Client.lua
index 742afa8b67e6f3c61dcb6407bd8788da1fcd8761..5f6ceaa69fac6495bc6dfd0e4021a4032e97df61 100644
--- a/game/profile-thread/Client.lua
+++ b/game/profile-thread/Client.lua
@@ -23,7 +23,7 @@ local UserChat = require "profile-thread.UserChat"
 
 module(..., package.seeall, class.make)
 
-local debug = true
+local debug = false
 
 local mport = debug and 2259 or 2257
 local pport = debug and 2260 or 2258