public oColl && not needed if running line by line in the command window oColl = createobject( "collection" ) && creates the collection o2 = createobject( "form" ) && creates a form o2.Visible = .t. && it's visibility is a "easier" way to see if it's alive and kicking oColl.Add( o2, "test" ) && add a reference to the form to the collection, the form object reference increments to 2 release o2 && or o2 = .null. && form reference count decrements to 1, form still visible oColl.Remove( "test" ) && clear the reference the collection is holding, form destructs.Update to the original reply. I wasn't quite testing the same thing. I didn't explicitly call the form.Release() method. I'm honestly suprised that it can clear any and all outstanding object references to the form. But it does and this behavior goes back to VFP6. It may do this in order to clear the _screen.Forms[] collection. This is amazingly pervasive, I tried creating a oRef property on the form and setting it to this, creating a public memvar with a reference and a property of a contained object to the form and just calling thisform.Release() from another button, and VFP goes through and nukes all of the object references to the form. I learned something new tonight.