Thanks Alex, the weak references *seem* to be doing what I want for now. In each __init__() I use: aptbase.drawables.append(weakref.ref(self)) Then in show(): for d in aptbase.drawables: o = d() if o is not None: # render it -- bytecolor