I should reformulate: I think a possible not arbitrary rule for exec is only exec ... in ... is valid, but this also something ok only on the long-run (like import * deprecation). Then it is necessary to agree on the semantic of locals(). What would happen right now mixing lexical scoping and exec ... in locals()? regards, Samuele Pedroni.