Bernie wrote: > Given only the address of a record, is it possible to identify how > many fields there are in the record and the field data types? No. Only you and the compiler know anything about records and their fields. At runtime a record is just bytes in RAM. There's no way even to know how many bytes. In the (admittedly contrived) example below, reading as much as 1 byte from the pointer p may crash, and is useless anyway as the byte can give no information about MySillyRecord. begin record MySillyRecord end record dim as pointer p p = fn NewPtr( sizeof( MySillyRecord ) ) /* p is the address of an instance of MySillyRecord, but you can't legally read even 1 byte from that address, for instance by x = p.0` */ If you really need the behaviour that you describe, you will have to define record types whose first field contains ingeniously-coded information as to the number and format of the remaining fields. Robert P.