I am calling a constructor on the SOAP server, which returns me a Foo::Bar
object. I fill in a few attributes and then "put" the object back into the
persistence store on the server. This works like a charm. The serialiser
produces the following envelope:

This, of course, causes my server to break, since it gets a class name
when it is expecting an object (i.e. a reference to a blessed hash).

Now, to some degree, this is a "Doctor, it hurts when I do this." "Then
stop doing that." problem, but I would like to know what is causing this
behaviour. Is it part of the SOAP spec, or a bug in S::L's serialiser?