The inheritance of @xml:lang and @xml:base creates a lot of complexities for an implementation. When they are used in combination with atom:source, things get particularly bad.
Should we add some notes to the spec to remind people how to correctly handle base and lang when atom:source-ifying entries? A couple of the complexities are: 1) An @xml:base attribute declared on an entry might be relative to the original feed's URI, or to @xml:base attributes on parent elements. These need to be resolved before they can be copied across into a second feed. 2) The source feed will have atom:entry as a child of atom:feed, but the second feed will have atom:source as a child of atom:entry. This switch in the hierarchy means that if the source feed contains an @xml:lang tag on its entry, but not on its feed, you need to undeclare @xml:lang on atom:source. Likewise, any @xml:base on atom:entry need to be resolved because it can no longer be relative to the base of the atom:feed element. Eg: <atom:feed> <atom:title>Source feed</atom:title> ... <atom:entry xml:lang="de"> <atom:title>Guten Tag</atom:title> ... </atom:entry> <atom:feed> needs to be embedded as: <atom:feed> <atom:title>Second feed</atom:title> ... <atom:entry xml:lang="de"> <atom:source xml:lang=""> <atom:title>Source feed</atom:title> ... </atom:source> <atom:title>Guten Tag</atom:title> ... </atom:entry> <atom:feed> -- Dave