Taras, I have folded the function of your patch into my sandbox, but I wonder if you could provide the rationale (e.g. what bug did it fix?).
I made some changes, which you may like to comment on: 1. I re-introduced SOAPHeader.outputImpl as the build failed without it. 2. In MessageElement, I moved the processing for the case when typeQName is null from getObjectValue to getType as it seemed more appropriate there. 3. I made setObjectValue protected as we don't want to encourage the setting of the value by arbitrary classes. 4. I deleted your code below from getValueAsType as this method really shouldn't have that kind of side-effect. For example, it would set the type to any type passed in, valid or invalid. if (typeQName==null) { setType(type); } Glyn