The problem there is that 2.4's exception statements and 3.0's have two different meanings.
2.4 only supports this:
try:
do stuff
except FooError, e:
do stuff with e
3.0 and up choke on this; they interpret it as "catch exceptions of type FooError or e and do not give the exception object a name".
2.5 through 2.7 interpret like 2.4 but also support explicit parentheses to do what Python 3 does:
try:
do stuff
except (FooError, BarError) as e:
do stuff
except (BazError, QuxError):
do other stuff
2to3 requires that you use the new exception syntax only, to avoid confusion.