I realize this reply is coming a little late, but when I recently ran into this problem and found a simple fix. As it turned out I had an object that contained a list of subordinate objects like so:
[Bindable] [RemoteClass(alias="com.bender.spotlist.dto.Spot")] public class Spot { public var latitude:Number = 0; public var longitude:Number = 0; public var photos:ArrayCollection; } The collection is a collection of PhotoEntries: [Bindable] [RemoteClass(alias="com.bender.spotlist.dto.PhotoEntry")] public class PhotoEntry { public var id:Number; public var photoId:Number; public var smallThumbURL:String; public var mediumThumbURL:String; public var largeThumbURL:String; } And all Flex would hand to me was a collection of Objects. It turns out that my problem was that while I was referencing the Spot class in the code I had not actually referenced (ie had import and used the object) the PhotoEntry class. Thus, flex did not build it and it couldn't be used during the unmarshalling process. As soon as I made a reference to the PhotoEntry class it was able to correctly find the type to use.