It seems eval is modifying the passed in locals/globals. This is behaviour I did not expect and is really messing up my web.py app.
Python 2.5.1 (r251:54863, Mar 7 2008, 04:10:12) [GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> d = dict(a=1) >>> d.keys() ['a'] >>> eval("a", d) 1 >>> d.keys() ['a', '__builtins__'] That can't be right. Regards Janto -- http://mail.python.org/mailman/listinfo/python-list