diff --git a/Lib/test/test_genexps.py b/Lib/test/test_genexps.py
index a86f12f..17ad78a 100644
--- a/Lib/test/test_genexps.py
+++ b/Lib/test/test_genexps.py
@@ -137,12 +137,14 @@
     >>> (y for y in (1,2)) = 10
     Traceback (most recent call last):
        ...
-    SyntaxError: can't assign to generator expression (<doctest test.test_genexps.__test__.doctests[40]>, line 1)
+      File "<doctest test.test_genexps.__test__.doctests[40]>", line 1
+    SyntaxError: can't assign to generator expression
 
     >>> (y for y in (1,2)) += 10
     Traceback (most recent call last):
        ...
-    SyntaxError: augmented assignment to generator expression not possible (<doctest test.test_genexps.__test__.doctests[41]>, line 1)
+      File "<doctest test.test_genexps.__test__.doctests[41]>", line 1
+    SyntaxError: augmented assignment to generator expression not possible
 
 
 ########### Tests borrowed from or inspired by test_generators.py ############
diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py
index 794564a..896ee81 100644
--- a/Lib/test/test_syntax.py
+++ b/Lib/test/test_syntax.py
@@ -29,11 +29,13 @@
 
 >>> obj.None = 1
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[1]>, line 1)
+  File "<doctest test.test_syntax[1]>", line 1
+SyntaxError: cannot assign to None
 
 >>> None = 1
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[2]>, line 1)
+  File "<doctest test.test_syntax[2]>", line 1
+SyntaxError: cannot assign to None
 
 It's a syntax error to assign to the empty tuple.  Why isn't it an
 error to assign to the empty list?  It will always raise some error at
@@ -41,35 +43,43 @@
 
 >>> () = 1
 Traceback (most recent call last):
-SyntaxError: can't assign to () (<doctest test.test_syntax[3]>, line 1)
+  File "<doctest test.test_syntax[3]>", line 1
+SyntaxError: can't assign to ()
 
 >>> f() = 1
 Traceback (most recent call last):
-SyntaxError: can't assign to function call (<doctest test.test_syntax[4]>, line 1)
+  File "<doctest test.test_syntax[4]>", line 1
+SyntaxError: can't assign to function call
 
 >>> del f()
 Traceback (most recent call last):
-SyntaxError: can't delete function call (<doctest test.test_syntax[5]>, line 1)
+  File "<doctest test.test_syntax[5]>", line 1
+SyntaxError: can't delete function call
 
 >>> a + 1 = 2
 Traceback (most recent call last):
-SyntaxError: can't assign to operator (<doctest test.test_syntax[6]>, line 1)
+  File "<doctest test.test_syntax[6]>", line 1
+SyntaxError: can't assign to operator
 
 >>> (x for x in x) = 1
 Traceback (most recent call last):
-SyntaxError: can't assign to generator expression (<doctest test.test_syntax[7]>, line 1)
+  File "<doctest test.test_syntax[7]>", line 1
+SyntaxError: can't assign to generator expression
 
 >>> 1 = 1
 Traceback (most recent call last):
-SyntaxError: can't assign to literal (<doctest test.test_syntax[8]>, line 1)
+  File "<doctest test.test_syntax[8]>", line 1
+SyntaxError: can't assign to literal
 
 >>> "abc" = 1
 Traceback (most recent call last):
-SyntaxError: can't assign to literal (<doctest test.test_syntax[9]>, line 1)
+  File "<doctest test.test_syntax[8]>", line 1
+SyntaxError: can't assign to literal
 
 >>> `1` = 1
 Traceback (most recent call last):
-SyntaxError: can't assign to repr (<doctest test.test_syntax[10]>, line 1)
+  File "<doctest test.test_syntax[10]>", line 1
+SyntaxError: can't assign to repr
 
 If the left-hand side of an assignment is a list or tuple, an illegal
 expression inside that contain should still cause a syntax error.
@@ -78,22 +88,26 @@
 
 >>> (a, "b", c) = (1, 2, 3)
 Traceback (most recent call last):
-SyntaxError: can't assign to literal (<doctest test.test_syntax[11]>, line 1)
+  File "<doctest test.test_syntax[11]>", line 1
+SyntaxError: can't assign to literal
 
 >>> [a, b, c + 1] = [1, 2, 3]
 Traceback (most recent call last):
-SyntaxError: can't assign to operator (<doctest test.test_syntax[12]>, line 1)
+  File "<doctest test.test_syntax[12]>", line 1
+SyntaxError: can't assign to operator
 
 >>> a if 1 else b = 1
 Traceback (most recent call last):
-SyntaxError: can't assign to conditional expression (<doctest test.test_syntax[13]>, line 1)
+  File "<doctest test.test_syntax[13]>", line 1
+SyntaxError: can't assign to conditional expression
 
 From compiler_complex_args():
 
 >>> def f(None=1):
 ...     pass
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[14]>, line 1)
+  File "<doctest test.test_syntax[14]>", line 1
+SyntaxError: cannot assign to None
 
 
 From ast_for_arguments():
@@ -101,22 +115,26 @@
 >>> def f(x, y=1, z):
 ...     pass
 Traceback (most recent call last):
-SyntaxError: non-default argument follows default argument (<doctest test.test_syntax[15]>, line 1)
+  File "<doctest test.test_syntax[15]>", line 1
+SyntaxError: non-default argument follows default argument
 
 >>> def f(x, None):
 ...     pass
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[16]>, line 1)
+  File "<doctest test.test_syntax[16]>", line 1
+SyntaxError: cannot assign to None
 
 >>> def f(*None):
 ...     pass
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[17]>, line 1)
+  File "<doctest test.test_syntax[17]>", line 1
+SyntaxError: cannot assign to None
 
 >>> def f(**None):
 ...     pass
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[18]>, line 1)
+  File "<doctest test.test_syntax[18]>", line 1
+SyntaxError: cannot assign to None
 
 
 From ast_for_funcdef():
@@ -124,7 +142,8 @@
 >>> def None(x):
 ...     pass
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[19]>, line 1)
+  File "<doctest test.test_syntax[19]>", line 1
+SyntaxError: cannot assign to None
 
 
 From ast_for_call():
@@ -136,7 +155,8 @@
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 >>> f(x for x in L, 1)
 Traceback (most recent call last):
-SyntaxError: Generator expression must be parenthesized if not sole argument (<doctest test.test_syntax[23]>, line 1)
+  File "<doctest test.test_syntax[23]>", line 1
+SyntaxError: Generator expression must be parenthesized if not sole argument
 >>> f((x for x in L), 1)
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 
@@ -168,7 +188,8 @@
 ...   i244,  i245,  i246,  i247,  i248,  i249,  i250,  i251,  i252,
 ...   i253,  i254,  i255)
 Traceback (most recent call last):
-SyntaxError: more than 255 arguments (<doctest test.test_syntax[25]>, line 1)
+  File "<doctest test.test_syntax[25]>", line 1
+SyntaxError: more than 255 arguments
 
 The actual error cases counts positional arguments, keyword arguments,
 and generator expression arguments separately.  This test combines the
@@ -202,37 +223,45 @@
 ...   (x for x in i244),  i245,  i246,  i247,  i248,  i249,  i250,  i251,
 ...    i252=1, i253=1,  i254=1,  i255=1)
 Traceback (most recent call last):
-SyntaxError: more than 255 arguments (<doctest test.test_syntax[26]>, line 1)
+  File "<doctest test.test_syntax[26]>", line 1
+SyntaxError: more than 255 arguments
 
 >>> f(lambda x: x[0] = 3)
 Traceback (most recent call last):
-SyntaxError: lambda cannot contain assignment (<doctest test.test_syntax[27]>, line 1)
+  File "<doctest test.test_syntax[27]>", line 1
+SyntaxError: lambda cannot contain assignment
 
 The grammar accepts any test (basically, any expression) in the
 keyword slot of a call site.  Test a few different options.
 
 >>> f(x()=2)
 Traceback (most recent call last):
-SyntaxError: keyword can't be an expression (<doctest test.test_syntax[28]>, line 1)
+  File "<doctest test.test_syntax[28]>", line 1
+SyntaxError: keyword can't be an expression
 >>> f(a or b=1)
 Traceback (most recent call last):
-SyntaxError: keyword can't be an expression (<doctest test.test_syntax[29]>, line 1)
+  File "<doctest test.test_syntax[29]>", line 1
+SyntaxError: keyword can't be an expression
 >>> f(x.y=1)
 Traceback (most recent call last):
-SyntaxError: keyword can't be an expression (<doctest test.test_syntax[30]>, line 1)
+  File "<doctest test.test_syntax[30]>", line 1
+SyntaxError: keyword can't be an expression
 
 
 From ast_for_expr_stmt():
 
 >>> (x for x in x) += 1
 Traceback (most recent call last):
-SyntaxError: augmented assignment to generator expression not possible (<doctest test.test_syntax[31]>, line 1)
+  File "<doctest test.test_syntax[31]>", line 1
+SyntaxError: augmented assignment to generator expression not possible
 >>> None += 1
 Traceback (most recent call last):
-SyntaxError: cannot assign to None (<doctest test.test_syntax[32]>, line 1)
+  File "<doctest test.test_syntax[32]>", line 1
+SyntaxError: cannot assign to None
 >>> f() += 1
 Traceback (most recent call last):
-SyntaxError: illegal expression for augmented assignment (<doctest test.test_syntax[33]>, line 1)
+  File "<doctest test.test_syntax[33]>", line 1
+SyntaxError: illegal expression for augmented assignment
 
 
 Test continue in finally in weird combinations.
@@ -259,7 +288,8 @@
     ...            continue
     Traceback (most recent call last):
       ...
-    SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[36]>, line 6)
+      File "<doctest test.test_syntax[36]>", line 6
+    SyntaxError: 'continue' not supported inside 'finally' clause
 
 This is essentially a continue in a finally which should not be allowed.
 
@@ -274,7 +304,8 @@
     ...                pass
     Traceback (most recent call last):
       ...
-    SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[37]>, line 7)
+      File "<doctest test.test_syntax[37]>", line 6
+    SyntaxError: 'continue' not supported inside 'finally' clause
 
     >>> def foo():
     ...     try:
@@ -283,7 +314,8 @@
     ...         continue
     Traceback (most recent call last):
       ...
-    SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[38]>, line 5)
+      File "<doctest test.test_syntax[38]>", line 5
+    SyntaxError: 'continue' not supported inside 'finally' clause
 
     >>> def foo():
     ...     for a in ():
@@ -293,7 +325,8 @@
     ...           continue
     Traceback (most recent call last):
       ...
-    SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[39]>, line 6)
+      File "<doctest test.test_syntax[39]>", line 6
+    SyntaxError: 'continue' not supported inside 'finally' clause
 
     >>> def foo():
     ...     for a in ():
@@ -306,7 +339,8 @@
     ...                 pass
     Traceback (most recent call last):
       ...
-    SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[40]>, line 7)
+      File "<doctest test.test_syntax[40]>", line 7
+    SyntaxError: 'continue' not supported inside 'finally' clause
 
     >>> def foo():
     ...  for a in ():
@@ -318,7 +352,8 @@
     ...     continue
     Traceback (most recent call last):
       ...
-    SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[41]>, line 8)
+      File "<doctest test.test_syntax[41]>", line 8
+    SyntaxError: 'continue' not supported inside 'finally' clause
 
 There is one test for a break that is not in a loop.  The compiler
 uses a single data structure to keep track of try-finally and loops,
@@ -333,7 +368,8 @@
    ...     print 3
    Traceback (most recent call last):
      ...
-   SyntaxError: 'break' outside loop (<doctest test.test_syntax[42]>, line 3)
+     File "<doctest test.test_syntax[42]>", line 3
+   SyntaxError: 'break' outside loop
 
 This should probably raise a better error than a SystemError (or none at all).
 In 2.5 there was a missing exception and an assert was triggered in a debug
@@ -375,7 +411,8 @@
    ...   pass
    Traceback (most recent call last):
      ...
-   SyntaxError: can't assign to function call (<doctest test.test_syntax[44]>, line 2)
+     File "<doctest test.test_syntax[44]>", line 2
+   SyntaxError: can't assign to function call
 
    >>> if 1:
    ...   pass
@@ -383,7 +420,8 @@
    ...   x() = 1
    Traceback (most recent call last):
      ...
-   SyntaxError: can't assign to function call (<doctest test.test_syntax[45]>, line 4)
+     File "<doctest test.test_syntax[45]>", line 4
+   SyntaxError: can't assign to function call
 
    >>> if 1:
    ...   x() = 1
@@ -393,7 +431,8 @@
    ...   pass
    Traceback (most recent call last):
      ...
-   SyntaxError: can't assign to function call (<doctest test.test_syntax[46]>, line 2)
+     File "<doctest test.test_syntax[46]>", line 2
+   SyntaxError: can't assign to function call
 
    >>> if 1:
    ...   pass
@@ -403,7 +442,8 @@
    ...   pass
    Traceback (most recent call last):
      ...
-   SyntaxError: can't assign to function call (<doctest test.test_syntax[47]>, line 4)
+     File "<doctest test.test_syntax[47]>", line 4
+   SyntaxError: can't assign to function call
 
    >>> if 1:
    ...   pass
@@ -413,12 +453,14 @@
    ...   x() = 1
    Traceback (most recent call last):
      ...
-   SyntaxError: can't assign to function call (<doctest test.test_syntax[48]>, line 6)
+     File "<doctest test.test_syntax[48]>", line 6
+   SyntaxError: can't assign to function call
 
 >>> f(a=23, a=234)
 Traceback (most recent call last):
    ...
-SyntaxError: keyword argument repeated (<doctest test.test_syntax[49]>, line 1)
+  File "<doctest test.test_syntax[49]>", line 1
+SyntaxError: keyword argument repeated
 
 """
 
