diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index b977ab67abab1f897c4ff29a3ffbe4ccd590d14d..32bdd0c267f4b51cf63243a48a579f128b22c42c 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -5515,7 +5515,6 @@ end
 
 --- Remove all effects based on a filter
 function _M:removeEffectsFilter(t, nb, silent, force)
-	nb = nb or 100000
 	local effs = {}
 	local removed = 0
 
@@ -5528,11 +5527,18 @@ function _M:removeEffectsFilter(t, nb, silent, force)
 		end
 	end
 
-	while #effs > 0 and nb > 0 do
-		local eff = rng.tableRemove(effs)
-		self:removeEffect(eff, silent, force)
-		nb = nb - 1
-		removed = removed + 1
+	if nb then
+		while #effs > 0 and nb > 0 do
+			local eff = rng.tableRemove(effs)
+			self:removeEffect(eff, silent, force)
+			nb = nb - 1
+			removed = removed + 1
+		end
+	else
+		removed = #effs
+		for i = 1,#effs do
+			self:removeEffect(effs[i], silent, force)
+		end
 	end
 	return removed
 end