35a36,37
> import copy
>
132,133c134,139
< self._modifiers.append(attr)
< return self
---
> # Return a copy of self rather than modifying self in place
> # since self could be an indirect reference via a variable or
> # parameter
> new_self = copy.deepcopy(self)
> new_self._modifiers.append(attr)
> return new_self
139,140c145,149
< self._modifiers.append(key)
< return self
---
> if hasattr(self, '_pdesc'):
> raise AttributeError, "Index operation on bound proxy"
> new_self = copy.deepcopy(self)
> new_self._modifiers.append(key)
> return new_self