diff --git a/game/modules/tome/data/general/objects/egos/amulets.lua b/game/modules/tome/data/general/objects/egos/amulets.lua
index 2565855acc4137c7c4a4baeec9fc41eee0d9b5fd..599cb5466eef4a0c4f1975e10689931cd926a4b5 100644
--- a/game/modules/tome/data/general/objects/egos/amulets.lua
+++ b/game/modules/tome/data/general/objects/egos/amulets.lua
@@ -100,12 +100,16 @@ newEntity{
 	rarity = 6,
 	cost = 2,
 	wielder = {},
-	resolvers.generic(function(e)
+	resolvers.genericlast(function(e)
 		local tts = {}
 		local p = game:getPlayer(true)
 		for i, def in ipairs(engine.interface.ActorTalents.talents_types_def) do
-			if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then tts[#tts+1] = def.type end
-		end
+            if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then 
+                if not (e.power_source.antimagic and def.is_spell) or (e.power_source.arcane and def.is_antimagic) then
+                    tts[#tts+1] = def.type
+                end
+            end
+        end
 		local tt = tts[rng.range(1, #tts)]
 
 		e.wielder.talents_types_mastery = {}
@@ -533,12 +537,16 @@ newEntity{
 	greater_ego = 1,
 	cost = 2,
 	wielder = {},
-	resolvers.generic(function(e)
+	resolvers.genericlast(function(e)
 		local tts = {}
 		local p = game:getPlayer(true)
 		for i, def in ipairs(engine.interface.ActorTalents.talents_types_def) do
-			if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then tts[#tts+1] = def.type end
-		end
+            if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then 
+                if not (e.power_source.antimagic and def.is_spell) or (e.power_source.arcane and def.is_antimagic) then
+                    tts[#tts+1] = def.type
+                end
+            end
+        end
 		--local tt = tts[rng.range(1, #tts)]
 		local tt = rng.tableRemove(tts)
 		local tt2 = rng.tableRemove(tts)