         }
 
         // register the reference
-        _ctx.oRef.table[obj] = _ctx.oRef.ix ++;
+        _ctx.oRef.push(obj);
 
         // read the sealed values
         for (var ii :int = 0; ii < traits.vars.length; ii ++) {

        var bytes :ByteArray = new ByteArray();

        // register
        _ctx.oRef.table[bytes] = _ctx.oRef.ix ++;

        // and read the bytes
        _ctx.bytes.readBytes(bytes, 0, code >> 1);

{
    public var bytes :ByteArray;

    public var oRef :Array = new Array();
    public var sRef :Array = new Array();
    public var tRef :Array = new Array();

    public function Context (bytes :ByteArray)
    {
        this.bytes = bytes;
    }
}

class Traits
