diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 87062114ae8f996a4e447aac0836e1bac1ed88a6..46706c297f6cb1c054a63425cc5cd3d1b68784f4 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -2789,7 +2789,7 @@ function _M:onTakeHit(value, src, death_note)
 			a.life = math.max(1, self.life - value / 2)
 			a.clone_on_hit.chance = math.ceil(self.clone_on_hit.chance / 2)
 			a.energy.value = 0
-			a.exp_worth = 0.1
+			a.exp_worth = math.min(0.1, a.exp_worth)
 			a.inven = {}
 			a:removeAllMOs()
 			a.x, a.y = nil, nil
@@ -7009,9 +7009,12 @@ end
 -- @return the experience rewarded
 function _M:worthExp(target)
 	if not target.level or self.level < target.level - 7 then return 0 end
+	if self.summoner then return 0 end
 
 	local level_mult = game.level.data.exp_worth_mult or 1
 
+	local worth = 0
+
 	-- HHHHAACKKK ! Use a normal scheme for the game except in the infinite dungeon
 	if not game.zone.infinite_dungeon then
 		local mult = 0.6
@@ -7024,7 +7027,7 @@ function _M:worthExp(target)
 		elseif self.rank >= 5 then mult = 60
 		end
 
-		return self.level * mult * self.exp_worth * (target.exp_kill_multiplier or 1) * level_mult
+		worth = self.level * mult * self.exp_worth * (target.exp_kill_multiplier or 1) * level_mult
 	else
 		local mult = 2 + (self.exp_kill_multiplier or 0)
 		if self.rank == 1 then mult = 2
@@ -7036,8 +7039,9 @@ function _M:worthExp(target)
 		elseif self.rank >= 5 then mult = 6.5
 		end
 
-		return self.level * mult * self.exp_worth * (target.exp_kill_multiplier or 1) * level_mult
+		worth = self.level * mult * self.exp_worth * (target.exp_kill_multiplier or 1) * level_mult
 	end
+	return worth
 end
 
 --- Burn arcane resources
diff --git a/game/modules/tome/data/zones/sludgenest/zone.lua b/game/modules/tome/data/zones/sludgenest/zone.lua
index 68675a07d6140a2e89d8fbe686fa1c206031c8a9..aad322d17a8cf2fa8dc3d04cd4f595d24522fb79 100644
--- a/game/modules/tome/data/zones/sludgenest/zone.lua
+++ b/game/modules/tome/data/zones/sludgenest/zone.lua
@@ -134,6 +134,7 @@ return {
 		local m = game.zone:makeEntity(game.level, "actor", filter, nil, true)
 		if g and m then
 			m.exp_worth = 0
+			m:emptyDrops()
 			game.zone:addEntity(game.level, g, "terrain", spot.x, spot.y)
 			game.zone:addEntity(game.level, m, "actor", spot.x, spot.y)
 			game.nicer_tiles:updateAround(game.level, spot.x, spot.y)