I edited my last suggestion above a bit, commented some more.

The thing that bothers me is this part of the original comment:

> Copy the items to be able to clean up removed items.

I'm not entirely sure if they're referring to the fact that if src == dst everything goes haywire (i.e.: what I *think* is the reason of the move), or something else entirely. So at least for me, that comment is confusing.