...  What's the problem we're trying to fix, again? Seems like we're getting kinda side-tracked from this function/pull request, which just gets you a new (un-ingested) object with the same properties of the old... The only way it could collide is if the old object had two datastreams with the same ID, which should not be possible (so the condition on https://github.com/Islandora/islandora/pull/341/files#L0R998 doesn't make too much sense to me).