diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua
index ab71182154153f9ed16b563918d7883d39e2612e..716f2b8adf851deb3df0df6b245c61f52a37aed8 100644
--- a/game/modules/tome/data/general/objects/boss-artifacts.lua
+++ b/game/modules/tome/data/general/objects/boss-artifacts.lua
@@ -623,6 +623,7 @@ newEntity{ base = "BASE_AMULET",
 		vampire:resolve()
 		game.zone:addEntity(game.level, vampire, "actor", x, y)
 		vampire:forceUseTalent(vampire.T_TAUNT, {})
+		if who:knowTalent(who.T_BLIGHTED_SUMMONING) then vampire:learnTalent(vampire.T_DARKFIRE, true, 3) end
 
 		game:playSoundNear(who, "talents/spell_generic")
 		return {id=true, used=true}
diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua
index fe4299d75d10dd40bb6b2d9a415693d9d245af4e..230dc763fdd4aca98f881766828ca5c4c0d24bc0 100644
--- a/game/modules/tome/data/general/objects/world-artifacts.lua
+++ b/game/modules/tome/data/general/objects/world-artifacts.lua
@@ -886,6 +886,7 @@ newEntity{
 
 			local setupSummon = getfenv(who:getTalentFromId(who.T_SPIDER).action).setupSummon
 			setupSummon(who, spider, x, y)
+			if who:knowTalent(who.T_BLIGHTED_SUMMONING) then spider:learnTalent(spider.T_CORROSIVE_WORM, true, 3) end
 
 			game:playSoundNear(who, "talents/slime")
 		end
diff --git a/game/modules/tome/data/gfx/talents/blighted_summoning.png b/game/modules/tome/data/gfx/talents/blighted_summoning.png
new file mode 100644
index 0000000000000000000000000000000000000000..37ced8d0ef5371a9894f2dc54050f62aacf4c3cf
Binary files /dev/null and b/game/modules/tome/data/gfx/talents/blighted_summoning.png differ
diff --git a/game/modules/tome/data/talents/cursed/shadows.lua b/game/modules/tome/data/talents/cursed/shadows.lua
index efb91864a25e24c8a5ce3211b46b86eb83d6e752..d02bd0b3bb043911a411068b8d81ae83b2a03588 100644
--- a/game/modules/tome/data/talents/cursed/shadows.lua
+++ b/game/modules/tome/data/talents/cursed/shadows.lua
@@ -176,7 +176,7 @@ newTalent{
 }
 
 local function createShadow(self, level, tCallShadows, tShadowWarriors, tShadowMages, duration, target)
-	return require("mod.class.NPC").new{
+	local npc = require("mod.class.NPC").new{
 		type = "undead", subtype = "shadow",
 		name = "shadow",
 		desc = [[]],
@@ -309,6 +309,10 @@ local function createShadow(self, level, tCallShadows, tShadowWarriors, tShadowM
 			return mod.class.Actor.onTakeHit(self, value, src)
 		end,
 	}
+
+	if self:knowTalent(self.T_BLIGHTED_SUMMONING) then npc:learnTalent(npc.T_EMPATHIC_HEX, true, 3) end
+
+	return npc
 end
 
 newTalent{
diff --git a/game/modules/tome/data/talents/gifts/summon-distance.lua b/game/modules/tome/data/talents/gifts/summon-distance.lua
index 5bfb9bda09112e514043f552b099658ce429ac93..f21c84f22af06b633918c349ccff934f3a9abc7d 100644
--- a/game/modules/tome/data/talents/gifts/summon-distance.lua
+++ b/game/modules/tome/data/talents/gifts/summon-distance.lua
@@ -287,6 +287,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_FLAME_FURY]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_DRAIN, true, 3) end
 
 		setupSummon(self, m, x, y)
 
@@ -392,6 +393,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_DISENGAGE]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_BLOOD_SPRAY, true, 3) end
 
 		setupSummon(self, m, x, y)
 
@@ -490,6 +492,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_RESOLVE]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_POISON_STORM, true, 3) end
 
 		setupSummon(self, m, x, y)
 
@@ -627,6 +630,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_AURA_OF_SILENCE]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_DARKFIRE, true, 3) end
 
 		setupSummon(self, m, x, y)
 
diff --git a/game/modules/tome/data/talents/gifts/summon-melee.lua b/game/modules/tome/data/talents/gifts/summon-melee.lua
index 5d72c9eaac19889317734884d51a7bf4935d5140..edf259f624836e95fd29917934f71b4e4ea5aba6 100644
--- a/game/modules/tome/data/talents/gifts/summon-melee.lua
+++ b/game/modules/tome/data/talents/gifts/summon-melee.lua
@@ -91,6 +91,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_TOTAL_THUGGERY]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_CURSE_OF_DEFENSELESSNESS, true, 3) end
 
 		setupSummon(self, m, x, y)
 
@@ -193,6 +194,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_SWALLOW]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_VIMSENSE, true, 3) end
 
 		setupSummon(self, m, x, y)
 
@@ -291,6 +293,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_RUSH]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_LIFE_TAP, true, 3) end
 
 		setupSummon(self, m, x, y)
 
@@ -392,6 +395,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_SHATTERING_IMPACT]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_BONE_SPEAR, true, 3) end
 
 		setupSummon(self, m, x, y)
 
diff --git a/game/modules/tome/data/talents/gifts/summon-utility.lua b/game/modules/tome/data/talents/gifts/summon-utility.lua
index 18073e8b53fc6cf8dd0d20d6e2b3813f6f488ac1..e90fa112567af30d8dd52e8e5c02df6540c65231 100644
--- a/game/modules/tome/data/talents/gifts/summon-utility.lua
+++ b/game/modules/tome/data/talents/gifts/summon-utility.lua
@@ -172,6 +172,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.talents{ [self.T_BATTLE_CALL]=self:getTalentLevelRaw(t) }
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_CURSE_OF_IMPOTENCE, true, 3) end
 
 		setupSummon(self, m, x, y)
 
@@ -275,6 +276,7 @@ newTalent{
 			m.name = m.name.." (wild summon)"
 			m[#m+1] = resolvers.inscription("INFUSION:_INSIDIOUS_POISON", {cooldown=12, range=6, heal_factor=0.6, power=self:getTalentLevel(t) * 60})
 		end
+		if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_CORROSIVE_WORM, true, 3) end
 
 		setupSummon(self, m, x, y)
 
diff --git a/game/modules/tome/data/talents/psionic/thought-forms.lua b/game/modules/tome/data/talents/psionic/thought-forms.lua
index cf058b9e7a802cfa711f245801179db48a174ac9..e6f79a2561a5cefea695a3832ec480fc23d000a2 100644
--- a/game/modules/tome/data/talents/psionic/thought-forms.lua
+++ b/game/modules/tome/data/talents/psionic/thought-forms.lua
@@ -152,6 +152,8 @@ function setupThoughtForm(self, m, x, y, t)
 	game.zone:addEntity(game.level, m, "actor", x, y)
 	game.level.map:particleEmitter(x, y, 1, "generic_teleport", {rm=225, rM=255, gm=225, gM=255, bm=225, bM=255, am=35, aM=90})
 
+	if self:knowTalent(self.T_BLIGHTED_SUMMONING) then m:learnTalent(m.T_FLAME_OF_URH_ROK, true, 3) end
+
 	-- Summons never flee
 	m.ai_tactic = m.ai_tactic or {}
 	m.ai_tactic.escape = 0
diff --git a/game/modules/tome/data/talents/spells/necrotic-minions.lua b/game/modules/tome/data/talents/spells/necrotic-minions.lua
index ea58b5daad9cc2cff628e701819b98c3369092b8..8c22c809a85e1409f1143b1a2e06b058c4f251b0 100644
--- a/game/modules/tome/data/talents/spells/necrotic-minions.lua
+++ b/game/modules/tome/data/talents/spells/necrotic-minions.lua
@@ -709,6 +709,12 @@ newTalent{
 			if minion and pos then
 				p.souls = p.souls - 1
 				necroSetupSummon(self, minion, pos.x, pos.y, lev, true)
+				if self:knowTalent(self.T_BLIGHTED_SUMMONING) then 
+					if minion.subtype == "skeleton" or minion.subtype == "giant" then minion:learnTalent(minion.T_BONE_GRAB, true, 3) end
+					if minion.subtype == "ghoul" then minion:learnTalent(minion.T_BLOOD_LOCK, true, 3) end
+					if minion.subtype == "vampire" or minion.subtype == "lich" then minion:learnTalent(minion.T_DARKFIRE, true, 3) end
+					if minion.subtype == "ghost" or minion.subtype == "wight" then minion:learnTalent(minion.T_BLOOD_BOIL, true, 3) end
+				end
 			end
 		end
 
diff --git a/game/modules/tome/data/talents/uber/mag.lua b/game/modules/tome/data/talents/uber/mag.lua
index 9d6fcd654533213c1a803cdeca9b47affce0592c..91a324baf4351698326a3082e1704b9a51e61372 100644
--- a/game/modules/tome/data/talents/uber/mag.lua
+++ b/game/modules/tome/data/talents/uber/mag.lua
@@ -114,4 +114,37 @@ uberTalent{
 		Transforming in this form will increase your paradox by 600 and revert it back at the end of the effect.]])
 		:format()
 	end,
-}
\ No newline at end of file
+}
+
+uberTalent{
+	name = "Blighted Summoning",
+	mode = "passive",
+	on_learn = function(self, t)
+		if self.alchemy_golem then self.alchemy_golem:learnTalent(self.alchemy_golem.T_DRAIN, true, 3) end
+	end,
+	require = { special={desc=".", fct=function(self)
+		return self:getTalentLevelRaw(self.T_IMBUE_ITEM) >= 5
+	end} },
+	info = function(self, t)
+		return ([[You infuse blighted energies in all your summons, giving them all a new talent:
+		- War Hound: Curse of Defenselessness
+		- Jelly: Vimsense
+		- Minotaur: Life Tap
+		- Golem: Bone Spear
+		- Ritch: Drain
+		- Hydra: Blood Spray
+		- Rimebark: Poison Storm
+		- Fire Drake: Darkfire
+		- Turtle: Curse of Impotence
+		- Spider: Corrosive Worm
+		- Skeletons: Bone Grab
+		- Ghouls: Blood Lock
+		- Vampires / Liches: Darkfire
+		- Ghosts / Wights: Blood Boil
+		- Alchemy Golems: Drain
+		- Shadows: Empathic Hex
+		- Thought-Forms: Flame of Urh'Rok
+		- Other race or object-based summons might be affected too
+		]]):format()
+	end,
+}