Just to add a word that I forgot: Adhering to the subject line, the intent is to track modifications of a dict. By definition, modification of a member of a dict without replacing the value is not considered a dict change.
I'd stick with the shallow approach. Asking to track mutation of an element in the general case is causing much trouble. Support for element tracking can probably provided by overriding the dict's getattr and recording the element in some extra candidate list. If the element itself is modified, it then could be looked up as a member of that dict, given that the element's setattr is traced, too. ciao - chris -- Christian Tismer :^) <mailto:[EMAIL PROTECTED]> tismerysoft GmbH : Have a break! Take a ride on Python's Johannes-Niemeyer-Weg 9A : *Starship* http://starship.python.net/ 14109 Berlin : PGP key -> http://wwwkeys.pgp.net/ work +49 30 802 86 56 mobile +49 173 24 18 776 fax +49 30 80 90 57 05 PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04 whom do you want to sponsor today? http://www.stackless.com/ -- http://mail.python.org/mailman/listinfo/python-list