fixed a bug in error reporting and some small documentation updates

--HG--
branch : trunk
diff --git a/jinja2/loaders.py b/jinja2/loaders.py
index eb27f17..8b21fdc 100644
--- a/jinja2/loaders.py
+++ b/jinja2/loaders.py
@@ -255,7 +255,7 @@
     >>> loader = ChoiceLoader([
     ...     FileSystemLoader('/path/to/user/templates'),
     ...     PackageLoader('myapplication')
-    .. ])
+    ... ])
 
     This is useful if you want to allow users to override builtin templates
     from a different location.
diff --git a/jinja2/parser.py b/jinja2/parser.py
index fcc684b..0ce4a29 100644
--- a/jinja2/parser.py
+++ b/jinja2/parser.py
@@ -29,7 +29,7 @@
         self.name = name
         self.filename = filename
         self.closed = False
-        self.stream = environment.lexer.tokenize(self.source, filename)
+        self.stream = environment.lexer.tokenize(self.source, name, filename)
         self.extensions = {}
         for extension in environment.extensions.itervalues():
             for tag in extension.tags:
@@ -43,7 +43,7 @@
         """
         if lineno is None:
             lineno = self.stream.current.lineno
-        raise TemplateSyntaxError(msg, lineno, self.name, self.filename)
+        raise exc(msg, lineno, self.name, self.filename)
 
     def is_tuple_end(self, extra_end_rules=None):
         """Are we at the end of a tuple?"""
diff --git a/jinja2/runtime.py b/jinja2/runtime.py
index 590bed9..7a1cf27 100644
--- a/jinja2/runtime.py
+++ b/jinja2/runtime.py
@@ -9,7 +9,6 @@
     :license: GNU GPL.
 """
 import sys
-from types import FunctionType
 from itertools import chain, imap
 from jinja2.utils import Markup, partial, soft_unicode, escape, missing, concat
 from jinja2.exceptions import UndefinedError, TemplateRuntimeError