diff --git a/game/modules/tome/class/Trap.lua b/game/modules/tome/class/Trap.lua
index aa4a60ac0909e0d30c8a574d8d3a76bf143dfcc0..f5cc58088fdbce8b9dfc7c9856d8846233a1dbf4 100644
--- a/game/modules/tome/class/Trap.lua
+++ b/game/modules/tome/class/Trap.lua
@@ -55,7 +55,7 @@ function _M:canDisarm(x, y, who)
 	-- do we know how to disarm?
 	if who:knowTalent(who.T_TRAP_DISARM) or who:attr("can_disarm") then
 		local power = who:getTalentLevel(who.T_TRAP_DISARM) * who:getCun(25) + (who:attr("disarm_bonus") or 0)
-		if who:checkHit(power, self.disarm_power) then
+		if who:checkHit(power, self.disarm_power) and (not self.faction or who:reactionToward(self) < 0) then
 			return true
 		end
 	end
diff --git a/game/modules/tome/data/talents/cunning/traps.lua b/game/modules/tome/data/talents/cunning/traps.lua
index 0edc8912cf6d25a52fe49a955ba8dee2822d8ffb..139e19d5480d59ae369cf59858e499bdfc68e5dd 100644
--- a/game/modules/tome/data/talents/cunning/traps.lua
+++ b/game/modules/tome/data/talents/cunning/traps.lua
@@ -19,7 +19,7 @@
 
 local Map = require "engine.Map"
 
-local trap_range = function(self, t) return 1 + math.floor(self:getTalentLevel(self.T_TRAP_LAUNCHER) * 2.2) end
+local trap_range = function(self, t) return 0 + math.floor(self:getTalentLevel(self.T_TRAP_LAUNCHER) * 2.2) end
 
 ----------------------------------------------------------------
 -- Trapping
@@ -80,6 +80,7 @@ newTalent{
 	stamina = 15,
 	no_break_stealth = true,
 	require = cuns_req2,
+	range = function(self, t) return math.ceil(self:getTalentLevel(t) * 1.5 + 5) end,
 	action = function(self, t)
 		local tg = {type="bolt", nowarning=true, range=self:getTalentRange(t), nolock=true, talent=t}
 		local tx, ty, target = self:getTarget(tg)
@@ -105,7 +106,7 @@ newTalent{
 			ai = "summoned", ai_real = "dumb_talented", ai_state = { talent_in=1, },
 			level_range = {1, 1}, exp_worth = 0,
 
-			max_life = 1,
+			max_life = self.level * 2,
 			life_rating = 0,
 			never_move = 1,
 
@@ -114,13 +115,13 @@ newTalent{
 			-- Hard to kill with spells
 			resists = {[DamageType.PHYSICAL] = -90, all = 90},
 
-			talent_cd_reduction={[Talents.T_TAUNT]=4, },
+			talent_cd_reduction={[Talents.T_TAUNT]=2, },
 			resolvers.talents{
 				[self.T_TAUNT]=self:getTalentLevelRaw(t),
 			},
 
 			summoner = self, summoner_gain_exp=true,
-			summon_time = 7,
+			summon_time = 5,
 		}
 
 		m:resolve() m:resolve(nil, true)
diff --git a/game/modules/tome/data/talents/gifts/summon-utility.lua b/game/modules/tome/data/talents/gifts/summon-utility.lua
index 631bed3d42da2510e5879bd5c2f147fb6964ae91..5febbfdef38e9ce2bea62f8131d02a7cea9440ad 100644
--- a/game/modules/tome/data/talents/gifts/summon-utility.lua
+++ b/game/modules/tome/data/talents/gifts/summon-utility.lua
@@ -41,10 +41,7 @@ newTalent{
 		local tg = {type="ball", range=0, radius=self:getTalentRange(t), friendlyfire=false, talent=t}
 		self:project(tg, self.x, self.y, function(tx, ty)
 			local a = game.level.map(tx, ty, Map.ACTOR)
-			print("try taunt", a and a.name, a and self:reactionToward(a))
-		game.level.map:particleEmitter(tx, ty, 1, "summon")
 			if a and self:reactionToward(a) < 0 then
-			print("taunt", a.name)
 				a:setTarget(self)
 			end
 		end)