clear X=CREATEOBJECT('myClass') Y1=CREATEOBJECT('test') Y1.Name = 'ImY1' Y2=CREATEOBJECT('test') Y2.Name = 'ImY2' && with next line, VFP implement a reference for Y1, && but you set a reference to Y2 X.AllCallMe = m.Y1 && whit this, VFP implement a reference for Y1, && but you set a reference to Y2 without change the Y2 RefCount ? X.AllCallMe.Name && * Y2 refCountMutex is 2, Y2 referenceList is empty, on VFP exists 2 reference Y2 = .NULL. && this not call AllCallMe with .NULL. and not destroy Y2 ? X.AllCallMe.Name && Y2 it still live * Y2 refCountMutex is 1, Y1 referenceList have AllCallMe, on VFP exists 1 reference ? 'now destroy Y1 and Y2' Y1 = .NULL. && this call AllCallMe with .NULL. ? 'end' DEFINE CLASS myClass AS Custom AllCallMe = .F. PROCEDURE AllCallMe_Assign(myValue) ? 'assign :',m.myValue this.AllCallMe = m.Y2 ENDPROC ENDDEFINE DEFINE CLASS test AS Custom PROCEDURE Destroy ? 'destroy',this.Name ENDPROC ENDDEFINE