define class myCnt as container oBrowser = .null. procedure Init() this.newobject( 'oHPL', 'myHPL' ) procedure Destroy() ..... some_object.oHolding = this.oBrowser triggers 1. myCnt.oBrowser_access() 2. myHPL.oBrowser_access() 3. myCnt.oBrowser_assign() procedure oBrowser_access() this.oBrowser = this.oHPL.oBrowser && triggers oBrowser_assign() return this.oBrowser procedure oBrowser_assign() lparameters vNewVal this.oHPL.oBrowser = vNewVal && vNewVal is .null. !!!!!!!!!!!!!!!!! this.oBrowser = vNewVal define class myHPL as hyperlink oBrowser = .null. procedure oBrowser_access() if isnull( this.oBrowser ) this.oBrowser = createobject( 'InternetExplorer.Application' ) endif return this.oBrowserI'm guessing that it's because I'm assigning a value to oBrowser inside oBrowser_access().