>PROCEDURE Release > *-- This is base class behavior. > This.GarbageCollect() > Release This > >PROCEDURE GarbageCollect > *-- This is base class behavior. > *-- If this object is some sort of container > FOR EACH oControl IN This.Controls > IF PEMSTATUS(oControl, "GarbageCollect", 5) > oControl.GarbageCollect() > ENDIF > ENDFOR > > *-- Now this is instance behavior so > *-- Your method starts mere with DoDefault() > *-- Now clean up situational artifacts at this level > This.oPointer1 = .NULL. > This.oPointer2 = .NULL. > >PROCEDURE DESTROY > This.GarbageCollect() && Only to be sure it gets called > DoDefault() >Sounds like they're properties holding references to 2 objects.