I have been quite careful in checking where e.g. metadata is copied from New to Old and fixed it so that values are copied and not the object itself. Whilst I now see the benefit of subclassing metadata to return New values differently if saving as id3v23, it does create some difficulty in understanding that Original and New metadata may not be the same class. I have added a comment in File.py _saving_finished.