diff --git a/game/engines/default/engine/Entity.lua b/game/engines/default/engine/Entity.lua
index 38d6d2071705aa0c43294049b619be35a0a775b7..03af078ba7b5f22455b985cc3f5dbbe1a15c453c 100644
--- a/game/engines/default/engine/Entity.lua
+++ b/game/engines/default/engine/Entity.lua
@@ -765,6 +765,7 @@ function _M:loadList(file, no_default, res, mod, loaded)
 			-- Do we inherit things ?
 			if t.base then
 				local temp = table.clone(res[t.base], true, {define_as = true})
+				if res[t.base].onEntityMerge then res[t.base]:onEntityMerge(temp) end
 				table.mergeAppendArray(temp, t, true)
 				t = temp
 				t.base = nil
diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index a222ddb327eac46004350c07c8270eb3ae0c3509..4db737a0eb686ff6140bb48b1b95d1a6b9f70179 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -225,6 +225,15 @@ function _M:init(t, no_default)
 	self:recomputeGlobalSpeed()
 end
 
+function _M:onEntityMerge(a)
+	-- Remove stats to make new stats work
+	for i, s in ipairs(_M.stats_def) do
+		if a.stats[i] then
+			a.stats[s.short_name], a.stats[i] = a.stats[i], nil
+		end
+	end
+end
+
 function _M:useEnergy(val)
 	engine.Actor.useEnergy(self, val)