There's nothing really *broken* jumping out at me. The last three methods (set_value, set_data, and clear_data) probably don't need a mutex, since they will each have their own frame, and the operations are atomic. If that makes no sense, Google for "Python GIL" ;). If you just returned a value from the dict instead of using copy, the same might be said for the get methods--it depends on whether you're storing mutable objects in self.data or not.
When you're done with the exercise and want to persist those values somewhere, give Dejavu a try: http://projects.amor.org/dejavu/ Robert Brewer System Architect Amor Ministries [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list