diff --git a/jinja2/environment.py b/jinja2/environment.py
index c2fee16..09705c1 100644
--- a/jinja2/environment.py
+++ b/jinja2/environment.py
@@ -368,7 +368,7 @@
             filename = filename.encode('utf-8')
         try:
             return Parser(self, source, name, filename).parse()
-        except TemplateSyntaxError, e:
+        except TemplateSyntaxError:
             self.handle_exception(sys.exc_info(), source_hint=source)
 
     def lex(self, source, name=None, filename=None):
@@ -384,7 +384,7 @@
         source = unicode(source)
         try:
             return self.lexer.tokeniter(source, name, filename)
-        except TemplateSyntaxError, e:
+        except TemplateSyntaxError:
             self.handle_exception(sys.exc_info(), source_hint=source)
 
     def preprocess(self, source, name=None, filename=None):
@@ -469,9 +469,8 @@
                 raise TemplateSyntaxError('chunk after expression',
                                           parser.stream.current.lineno,
                                           None, None)
-        except TemplateSyntaxError, e:
-            e.source = source
-            raise e
+        except TemplateSyntaxError:
+            self.handle_exception(sys.exc_info(), source_hint=source)
         body = [nodes.Assign(nodes.Name('result', 'store'), expr, lineno=1)]
         template = self.from_string(nodes.Template(body, lineno=1))
         return TemplateExpression(template, undefined_to_none)
