I'm curious why this code isn't working how I expect it to: import sys d=3
def func1(a,b,c): print a,b,c,d print sys.path exec "func1(1,2,3)" in {'func1':func1} ---- returns: 1 2 3 3 [ sys.path stuff ....] Since I'm telling exec to operate only within the context of the dictionary I give it, why does it still see sys.path and d? I figured it would throw a NameError. Is there a way to call exec such that it won't have access to any more objects than I explicitly give it? Thanks, Greg -- http://mail.python.org/mailman/listinfo/python-list