diff --git a/game/modules/tome/data/talents/spells/master-of-bones.lua b/game/modules/tome/data/talents/spells/master-of-bones.lua
index d4e803849d6237136a78c6450c0579f2ac01a5cc..7da8e6383116e25e52e79c7b4d9f48c17017cc25 100644
--- a/game/modules/tome/data/talents/spells/master-of-bones.lua
+++ b/game/modules/tome/data/talents/spells/master-of-bones.lua
@@ -476,7 +476,7 @@ newTalent{
 			melee_project = {[DamageType.BLIGHT]=resolvers.mbonus(15, 5)},
 			autolevel = "warriormage",
 			resists = {all = 50},
-			resolvers.talents{ T_BONE_ARMOUR={base=5, every=10, max=7}, T_STUN={base=3, every=10, max=5}, T_SKELETON_REASSEMBLE=5, },
+			resolvers.talents{ T_BONE_ARMOUR={base=5, every=10, max=7}, T_THROW_BONES={base=4, every=10, max=7}, T_STUN={base=3, every=10, max=5}, T_SKELETON_REASSEMBLE=5, },
 		},
 	},
 	tactical = { ATTACK = 2 },
@@ -542,34 +542,35 @@ newTalent{
 	onAIGetTarget = function(self, t)
 		local targets = {}
 		for _, act in pairs(game.level.entities) do
-			if act.summoner == self and act.necrotic_minion and act.skeleton_minion and self:hasLOS(act.x, act.y) and core.fov.distance(self.x, self.y, act.x, act.y) <= self:getTalentRange(t) then
+			if act.summoner == self and act.necrotic_minion and (act.skeleton_minion or act.is_bone_giant) and self:hasLOS(act.x, act.y) and core.fov.distance(self.x, self.y, act.x, act.y) <= self:getTalentRange(t) then
 			targets[#targets+1] = act
 		end end
 		if #targets == 0 then return nil end
 		local tgt = rng.table(targets)
 		return tgt.x, tgt.y, tgt
 	end,
-	on_pre_use = function(self, t) return necroArmyStats(self).nb_skeleton > 0 end,
+	on_pre_use = function(self, t) local stats = necroArmyStats(self) return stats.nb_skeleton > 0 or stats.bone_giant end,
 	action = function(self, t, p)
 		local tg = self:getTalentTarget(t)
 		local x, y, target = self:getTargetLimited(tg)
 		if not x or not y or not target then return nil end
-		if not target.skeleton_minion or target.summoner ~= self then return nil end
+		if (not target.skeleton_minion and not target.is_bone_giant) or target.summoner ~= self then return nil end
 
 		local stats = necroArmyStats(self)
 		if stats.lord_of_skulls then stats.lord_of_skulls:removeEffect(stats.lord_of_skulls.EFF_LORD_OF_SKULLS, false, true) end
 
-		target:setEffect(target.EFF_LORD_OF_SKULLS, 1, {life=t:_getLife(self), talents=self:getTalentLevel(t) >= 6})
+		target:setEffect(target.EFF_LORD_OF_SKULLS, 1, {life=t:_getLife(self), talents=self:getTalentLevel(t)})
 		return true
 	end,	
 	info = function(self, t)
 		return ([[Consume a soul to empower one of your skeleton, making it into a Lord of Skulls.
 		The Lord of Skulls gain %d%% more life, is instantly healed to full.
 		There can be only one active Lord of Skulls, casting this spell on an other skeleton removes the effect from the current one.
-		At level 6 it also gains a new talent:
-		- Warriors learn Giant Leap, a powerful jump attack that deals damage and dazes and impact and frees the skeleton from any stun, daze and pin effects they may have
-		- Archers learn Vital Shot, a devastating attack that can stun and cripple their foes
-		- Mages learn Meteoric Crash, a destructive spell that crushes and burns foes in a big radius for multiple turns
+		It also gains a new talent if high enough:
+		At level 2 Warriors learn Giant Leap, a powerful jump attack that deals damage and dazes and impact and frees the skeleton from any stun, daze and pin effects they may have
+		At level 3 Archers learn Vital Shot, a devastating attack that can stun and cripple their foes
+		At level 5 Mages learn Meteoric Crash, a destructive spell that crushes and burns foes in a big radius for multiple turns
+		At level 6 Bone Giants learn You Shall Be My Weapon!, a massive attack that deals high damage, knockbacks foes and stuns them
 		]]):
 		tformat(t:_getLife(self))
 	end,
diff --git a/game/modules/tome/data/timed_effects/magical.lua b/game/modules/tome/data/timed_effects/magical.lua
index 7e9d7212212219c2f04f8c4d4e6fadd955bec278..994a3b1fb7f4e0b685e54bf342546047121aec1a 100644
--- a/game/modules/tome/data/timed_effects/magical.lua
+++ b/game/modules/tome/data/timed_effects/magical.lua
@@ -4745,35 +4745,38 @@ newEffect{
 		if self.skeleton_minion == "warrior" then self.name = _t"Lord of Skulls (warrior)"
 		elseif self.skeleton_minion == "archer" then self.name = _t"Lord of Skulls (archer)"
 		elseif self.skeleton_minion == "mage" then self.name = _t"Lord of Skulls (mage)"
+		elseif self.is_bone_giant then self.name = _t"Lord of Skulls (bone giant)"
 		end
 
-		if eff.talents then
-			if self.skeleton_minion == "warrior" then self:learnTalent(self.T_GIANT_LEAP, true)
-			elseif self.skeleton_minion == "archer" then self:learnTalent(self.T_VITAL_SHOT, true)
-			elseif self.skeleton_minion == "mage" then self:learnTalent(self.T_METEORIC_CRASH, true)
-			end
+		if eff.talents >= 2 and self.skeleton_minion == "warrior" then self:learnTalent(self.T_GIANT_LEAP, true)
+		elseif eff.talents >= 3 and self.skeleton_minion == "archer" then self:learnTalent(self.T_VITAL_SHOT, true)
+		elseif eff.talents >= 5 and self.skeleton_minion == "mage" then self:learnTalent(self.T_METEORIC_CRASH, true)
+		elseif eff.talents >= 6 and self.is_bone_giant then self:learnTalent(self.T_TITAN_S_SMASH, true)
 		end
 
 		local image
 		if self.skeleton_minion == "warrior" then image = "npc/lord_of_skulls_warrior.png"
 		elseif self.skeleton_minion == "archer" then image = "npc/lord_of_skulls_archer.png"
 		elseif self.skeleton_minion == "mage" then image = "npc/lord_of_skulls_magus.png"
+		elseif self.is_bone_giant then image = "npc/undead_giant_heavy_sentinel.png"
 		end
 
 		self.replace_display = mod.class.Actor.new{
-			image = image, display_y = -1, display_h = 2
+			image = "invis.png",
+			add_mos = {{image = image, display_y = -1, display_h = 2}}
 		}
 		self:removeAllMOs()
 		game.level.map:updateMap(self.x, self.y)
 	end,
 	deactivate = function(self, eff)
 		self.lord_of_skulls = false
-		if eff.talents then
-			if self.skeleton_minion == "warrior" then self:unlearnTalent(self.T_GIANT_LEAP, 1)
-			elseif self.skeleton_minion == "archer" then self:unlearnTalent(self.T_VITAL_SHOT, 1)
-			elseif self.skeleton_minion == "mage" then self:unlearnTalent(self.T_METEORIC_CRASH, 1)
-			end
+
+		if eff.talents >= 2 and self.skeleton_minion == "warrior" then self:unlearnTalent(self.T_GIANT_LEAP, 1)
+		elseif eff.talents >= 3 and self.skeleton_minion == "archer" then self:unlearnTalent(self.T_VITAL_SHOT, 1)
+		elseif eff.talents >= 5 and self.skeleton_minion == "mage" then self:unlearnTalent(self.T_METEORIC_CRASH, 1)
+		elseif eff.talents >= 6 and self.is_bone_giant then self:unlearnTalent(self.T_TITAN_S_SMASH, 1)
 		end
+
 		self.name = self.old_los_name
 		self.replace_display = nil
 		self:removeAllMOs()