diff --git a/django/template/__init__.py b/django/template/__init__.py
index 8cf83e40c5..62a394cdba 100644
--- a/django/template/__init__.py
+++ b/django/template/__init__.py
@@ -175,8 +175,13 @@ class Template(object):
 
 def compile_string(template_string, origin):
     "Compiles template_string into NodeList ready for rendering"
-    lexer = lexer_factory(template_string, origin)
-    parser = parser_factory(lexer.tokenize())
+    if settings.TEMPLATE_DEBUG:
+        from debug import DebugLexer, DebugParser
+        lexer_class, parser_class = DebugLexer, DebugParser
+    else:
+        lexer_class, parser_class = Lexer, Parser
+    lexer = lexer_class(template_string, origin)
+    parser = parser_class(lexer.tokenize())
     return parser.parse()
 
 class Token(object):
@@ -334,20 +339,6 @@ class Parser(object):
         else:
             raise TemplateSyntaxError("Invalid filter: '%s'" % filter_name)
 
-def lexer_factory(*args, **kwargs):
-    if settings.TEMPLATE_DEBUG:
-        from debug import DebugLexer
-        return DebugLexer(*args, **kwargs)
-    else:
-        return Lexer(*args, **kwargs)
-
-def parser_factory(*args, **kwargs):
-    if settings.TEMPLATE_DEBUG:
-        from debug import DebugParser
-        return DebugParser(*args, **kwargs)
-    else:
-        return Parser(*args, **kwargs)
-
 class TokenParser(object):
     """
     Subclass this and implement the top() method to parse a template line. When