SF patch 1631942 by Collin Winter:
(a) "except E, V" -> "except E as V"
(b) V is now limited to a simple name (local variable)
(c) V is now deleted at the end of the except block
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
index 284dbb2..11cf43a 100644
--- a/Lib/test/test_extcall.py
+++ b/Lib/test/test_extcall.py
@@ -35,21 +35,21 @@
 
 try:
     g()
-except TypeError, err:
+except TypeError as err:
     print "TypeError:", err
 else:
     print "should raise TypeError: not enough arguments; expected 1, got 0"
 
 try:
     g(*())
-except TypeError, err:
+except TypeError as err:
     print "TypeError:", err
 else:
     print "should raise TypeError: not enough arguments; expected 1, got 0"
 
 try:
     g(*(), **{})
-except TypeError, err:
+except TypeError as err:
     print "TypeError:", err
 else:
     print "should raise TypeError: not enough arguments; expected 1, got 0"
@@ -61,7 +61,7 @@
 class Nothing: pass
 try:
     g(*Nothing())
-except TypeError, attr:
+except TypeError as attr:
     pass
 else:
     print "should raise TypeError"
@@ -71,7 +71,7 @@
         return 5
 try:
     g(*Nothing())
-except TypeError, attr:
+except TypeError as attr:
     pass
 else:
     print "should raise TypeError"
@@ -93,7 +93,7 @@
         return self
 try:
     g(*Nothing())
-except TypeError, attr:
+except TypeError as attr:
     pass
 else:
     print "should raise TypeError"
@@ -132,77 +132,77 @@
 
 try:
     g(1, 2, 3, **{'x':4, 'y':5})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: keyword parameter redefined"
 
 try:
     g(1, 2, 3, a=4, b=5, *(6, 7), **{'a':8, 'b':9})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: keyword parameter redefined"
 
 try:
     f(**{1:2})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: keywords must be strings"
 
 try:
     h(**{'e': 2})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: unexpected keyword argument: e"
 
 try:
     h(*h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: * argument must be a tuple"
 
 try:
     dir(*h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: * argument must be a tuple"
 
 try:
     None(*h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: * argument must be a tuple"
 
 try:
     h(**h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: ** argument must be a dictionary"
 
 try:
     dir(**h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: ** argument must be a dictionary"
 
 try:
     None(**h)
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: ** argument must be a dictionary"
 
 try:
     dir(b=1,**{'b':1})
-except TypeError, err:
+except TypeError as err:
     print err
 else:
     print "should raise TypeError: dir() got multiple values for keyword argument 'b'"
@@ -226,13 +226,13 @@
 print Foo.method(x, *(1, 2))
 try:
     print Foo.method(*(1, 2, 3))
-except TypeError, err:
+except TypeError as err:
     pass
 else:
     print 'expected a TypeError for unbound method call'
 try:
     print Foo.method(1, *(2, 3))
-except TypeError, err:
+except TypeError as err:
     pass
 else:
     print 'expected a TypeError for unbound method call'
@@ -276,4 +276,4 @@
             for k in kwargs: kwdict[k] = k + k
             print func.func_name, args, sortdict(kwdict), '->',
             try: func(*args, **kwdict)
-            except TypeError, err: print err
+            except TypeError as err: print err