this fails under diamond inheritance

def cascade_delete(self, name):
    "this fails under diamond inheritance"
    for child in self[name].child_tables:
      self.cascade_delete(child.name)
    del self[name]