Usual same issue with outliner operations, where you apply it on one item, and then try to apply it again on same item listed somewhere else in the tree... Fixed by using the 'multi-tagged deletion' code we now have for IDs, that way tree-walking function just tags IDs for deletion, and they all get deleted at once at the end.