Question I’ve always had. Why do I need to cast “value” to “pointer" otherwise I get: Incompatible types: got "Pointer" expected “TObject” error?. I don’t find this very helpful and it doesn’t really make sense even. var list: TObjectList; value: TObject; begin for pointer(value) in list do ; Regards, Ryan Joseph