oObject1 = CREATEOBJ('MyClass') oObject2 = oObject1 && two references to the same object oObject1 = NULL && object still exists because oObject2 still references it oObject2 = NULL && object releases since no references exist oObject3 = CREATEOBJ('MyClass') oObject4 = oObject3 && again, two references ? ISNULL(oObject4) oObject3.Release() && the object destroys itself even though other object refs exist ? ISNULL(oObject4) && now null since the object is gone oObject5 = CREATEOBJ('MyClass') oObject5.AddProperty('oObjRef') oObject5.oObjRef = CREATEOBJ('SomeClass') oObject5.oObjRef = NULL && object goes away * oObject5.oObjRef.Release() would kill it, too. * as would oObject5 = NULLNOTE: NOT ALL CLASSES HAVE A RELEASE METHOD!!!! Classes based on the CUSTOM class, for example, do not have a native Release