Try to avoid upgrade recursion