diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index b024318e108e6b32cf10d7638e5bcc57155380b6..49069afe1826e840f54f97f100c50f2e680bf895 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -6847,6 +6847,7 @@ end
 function _M:alterTalentLevelRaw(t, lvl)
 	if t.no_unlearn_last then return lvl end -- Those are dangerous, do not change them
 	if self.talents_add_levels and self.talents_add_levels[t.id] then lvl = lvl + self.talents_add_levels[t.id] end
+	if self:attr("all_talents_bonus_level") then lvl = lvl + self:attr("all_talents_bonus_level") end
 	if self:attr("spells_bonus_level") and t.is_spell then lvl = lvl + self:attr("spells_bonus_level") end
 	if self.talents_add_levels_custom and next(self.talents_add_levels_custom) then
 		for id, filter in pairs(self.talents_add_levels_custom) do if type(filter) == "function" then
diff --git a/game/modules/tome/data/talents/spells/phantasm.lua b/game/modules/tome/data/talents/spells/phantasm.lua
index b1d88284c720f646f45d7df34c4243ab864c6472..f3bbe7783c6df8c7f49d6d8211b7a9e025841f48 100644
--- a/game/modules/tome/data/talents/spells/phantasm.lua
+++ b/game/modules/tome/data/talents/spells/phantasm.lua
@@ -208,6 +208,20 @@ newTalent{
 			faction = self.faction,
 			summoner = self,
 			heal = function() return 0 end, -- Cant ever heal
+			useCharge = function(self)
+				self.charges = self.charges - 1
+				self.max_life = self.max_charges
+				self.life = self.charges
+				if self.charges < 0 then self:die(self) end
+			end,
+			callbackOnAct = function(self)
+				self.max_life = self.max_charges
+				self.life = self.charges
+			end,
+			onTemporaryValueChange = function(self, ...)
+				self:callbackOnAct()
+				return mod.class.NPC.onTemporaryValueChange(self, ...)
+			end,
 			takeHit = function(self, value, src, death_note) -- Cant ever take more than one damage per turn per actor
 				if not src then return false, 0 end
 				if src ~= self then
@@ -216,7 +230,9 @@ newTalent{
 					self.turn_procs.mirror_image_dmg = self.turn_procs.mirror_image_dmg or {}
 					self.turn_procs.mirror_image_dmg[src] = true
 				end
-				return mod.class.NPC.takeHit(self, 1, src, death_note)
+				self:useCharge()
+				return false, 1
+				-- return mod.class.NPC.takeHit(self, 1, src, death_note)
 			end,
 			on_die = function(self)
 				self.summoner:removeEffect(self.summoner.EFF_MIRROR_IMAGE_REAL, true, true)
@@ -230,6 +246,8 @@ newTalent{
 		game.zone:addEntity(game.level, image, "actor", tx, ty)
 		image.max_life = t:_getLife(self)
 		image.life = t:_getLife(self)
+		image.max_charges = t:_getLife(self)
+		image.charges = t:_getLife(self)
 
 		-- Clone particles
 		for ps, _ in pairs(self.__particles) do
diff --git a/game/modules/tome/data/talents/uber/cun.lua b/game/modules/tome/data/talents/uber/cun.lua
index 7ec1585c70f55d35699d08b3cf8a842e942bc1b8..a2fd1adaa0912d1f76c85dfc5f0ad58ff02c6e77 100644
--- a/game/modules/tome/data/talents/uber/cun.lua
+++ b/game/modules/tome/data/talents/uber/cun.lua
@@ -471,17 +471,11 @@ uberTalent{
 	mode = "passive",
 	cant_steal = true,
 	info = function(self, t)
-		return ([[Your talent masteries are increased by 0.3.  Note that many talents will not benefit from this increase.]])
-		:tformat()
+		return ([[You are adept at many different skills, granting you +2 to all talent levels.
+		This works on already known talents and those that you will learn afterwards.]]):tformat()
 	end,
-	passives = function(self, t, tmptable)
-		self:talentTemporaryValue(tmptable, "talents_mastery_bonus", {all = 0.3})
-		
-		if not self._updating_adept then
-			self._updating_adept = true
-			self:updateAllTalentsPassives()
-			self._updating_adept = nil
-		end
+	passives = function(self, t, p)
+		self:talentTemporaryValue(p, "all_talents_bonus_level", 2)
 	end,
 }
 
diff --git a/game/modules/tome/data/timed_effects/other.lua b/game/modules/tome/data/timed_effects/other.lua
index 6033baf27973bc26ddef61317fc99c37bbc3a22c..5accdee5d44b6fd36674c0eb7d06ff95c43e0ecc 100644
--- a/game/modules/tome/data/timed_effects/other.lua
+++ b/game/modules/tome/data/timed_effects/other.lua
@@ -4059,7 +4059,8 @@ newEffect{
 
 		pcall(function() -- Just in case
 			eff.image:forceUseTalent(ab.id, {force_level=self:getTalentLevelRaw(ab.id), ignore_cd=true, no_talent_fail=true, ignore_energy=true, force_talent_ignore_ressources=true, force_target=tgt})
-			eff.image:takeHit(1, eff.image)
+			-- eff.image:takeHit(1, eff.image)
+			eff.image:useCharge()
 		end)
 
 		eff.last_talent = true