Bill,
Because of your deadly embrace situation you are going to have to explicitly call a cleanup method of one of those two objects so that the references can be removed.
You can put the clean up in the Destroy(), but realize that calling Destroy doesn't really cause the object to be destroyed. Destroy is an event that fires as the object is destructing.
>No Control.Destroy() method is ever STARTED. The Form.Destroy() executes, releasing the variable it's linked to, but NO CONTROL Destroy() ever starts. There is code in EVERY Control.Destroy() method on the form, but none of them ever get started.