81,82c81
<         #self.__obj = weakref.ref(obj)
<         self.obj = obj
---
>         self.__obj = weakref.ref(obj)
84c83,88
<     #obj = property(lambda s:s.__obj())
---
>     def __getstate__(self):
>         return {'key':self.key, 'obj':self.obj}
>     def __setstate__(self, d):
>         self.key = d['key']
>         self.__obj = weakref.ref(d['obj'])
>     obj = property(lambda s:s.__obj())
499d502
<             class_._managed_attributes = ObjectAttributeGateway()
501,520d503
< 
< managed_attributes = weakref.WeakKeyDictionary()
< 
< class ObjectAttributeGateway(object):
<     """handles the dictionary of ManagedAttributes for instances.  this level of indirection
<     is to prevent circular references upon objects, as well as keeping them Pickle-compatible."""
<     def __set__(self, obj, value):
<         managed_attributes[obj] = value
<     def __delete__(self, obj):
<         try:
<             del managed_attributes[obj]
<         except KeyError:
<             raise AttributeError()
<     def __get__(self, obj, owner):
<         if obj is None:
<             return self
<         try:
<             return managed_attributes[obj]
<         except KeyError:
<             raise AttributeError()
\ No newline at end of file
