If the address it was reading was something like $B48764 then the fOwner or the object has been destroyed. If the address it was reading was $FFFFFF?? or $000000?? then it was trying to access a property or virtual method on a nil pointer.
In the destructor of TMyComponent, I assume you are freeing the TMyClass. You could set Compiler options to include debug .dcu files and step through the Delphi Code. But it sounds like you may be keeping your own reference to the TMyComponent or TMyClass instance then using that reference after the object has been destroyed. If TMyComponent is free'd, are you clearing all external references? (using a FreeNotification for TMyComponent). If you are using FreeNotification/Notification, make sure that in TMyComponent.Notification() you are calling inherited. Break the code into smaller statements and debug it that way: o := fOwner; ShowMessage(o.Name); i := o.ComponentIndex; ShowMessage(IntToStr(i)); If you get an AV accessing fOwner then your object has already been destroyed. If you get an AV accessing fOwner.Name then fOwner has already been destroyed. If you get an AV accessing o.ComponentIndex then you will need to step through the Delphi code to see what's wrong. --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/