The commit should clarify (https://github.com/kylog/puppet/commit/ff7e7f5e1ef369689101843a68d8d194c191acaf). The issue comes down to trying to make it clear that when making a new catalog it should be copies of the resources from the old catalog. The to_resource method, sometimes made a copy and sometimes didn't (which makes sense), but that isn't want the user needed. That was made up for by using the `.dup` method and then modifying the result. After a lot of searching it turned out that the catalog transformation code seemed to be the only user of this method and so we changed it so that it was clearer about what it was doing.