Has anyone written something like this: x = MyRedClassInstance(); y = MyBlueClassInstance(); x.y = shadow(y) # weak reference y.x = shadow(x) # weak reference When you del x, then y.x automatically becomes None, but otherwise, any other problems are avoided. Is that possible? Warren