I *think* this is unambiguous: with a as b and c as d and e as f: ... because the rule for a with statement is with_stmt: 'with' with_item (',' with_item)* ':' suite with_item: test ['as' expr] and expr doesn't include 'and'. -- Greg