Fix circular references (Issue 511-512)
Another attempt at fixing persistent refs to dead objects (#511 (closed) and #512 (closed))
By mistake I deleted my remote branch and closed #688. This PR is a clone of #688
Fixes #511 (closed) Fixes #512 (closed)