I can't believe I missed it in the documentation. Maybe it wasn't in the offline version I was using, but more likely it was just one of those things.
So the trouble seems to be that the traceback holds a reference to the frame where the exception occurred, and as a result a local variable that references the traceback in that frame now holds a reference to it's own frame (preventing the frame from being recliamed) and can't be cleaned up prior to python 2.2 with GC enabled. Which means it's fine to hold a reference to the traceback in a frame not in the traceback, or (I think) to create a temporary unamed reference to it. Thanks for your help guys! -Sandra -- http://mail.python.org/mailman/listinfo/python-list