Reapply 75252, with a fix to avoid the infinite recursion case. The