I believe cleanup is also invoked more than once on the same Service instance (the one that is actually stored in WeldManager's ServiceRegistry, not the two that are thrown away). I'll investigate this and get back to you.