The patch I provided introduces only the necessary changes to solve the issue.
The detection of introduced container states for choices in the UnmarshalHandler is a bit quick and dirty
The XMLClassDescriptor interface must be extended to expose method "isChoice()" from XMLClassDescriptorImpl.
However this will affect many implementing classes (more than a dozen) since the is no common base class.
For a couple of other methods, a common base class for most/all of the implementing classes makes probably sense, too.