As an additional note, when using ObjectUtil.copy() with your own user-defined classes (i.e., not Object, ObjectProxy,...), you may have to use [RemoteClass] metadata or the registerClassAlias() method.
The problem is that "...when an object is deserialized from AMF, it does not automatically get created as a class instance. The object might have all of the properties of a class instance, but it will not be a true class instance unless the AMF packet includes type information about the object. The type information gets added to AMF in one of two ways: - Using the {RemoteClass] metadata tag. - Using the registerClassAlias() method. ..." I found this out the hard way. pc