Index: loader_tags.py
===================================================================
--- loader_tags.py	(revision 7112)
+++ loader_tags.py	(working copy)
@@ -44,6 +44,11 @@
         self.parent_name, self.parent_name_expr = parent_name, parent_name_expr
         self.template_dirs = template_dirs
 
+        if parent_name:
+            self.compiled_parent = self.process_parent(None)
+        else:
+            self.compiled_parent = Non
+
     def __repr__(self):
         if self.parent_name_expr:
             return "<ExtendsNode: extends %s>" % self.parent_name_expr.token
@@ -67,7 +72,7 @@
         else:
             return get_template_from_string(source, origin, parent)
 
-    def render(self, context):
+    def process_parent( self, context ):
         compiled_parent = self.get_parent(context)
         pos = 0
         while isinstance(compiled_parent.nodelist[pos], TextNode):
@@ -90,6 +95,13 @@
                 parent_block.parent = block_node.parent
                 parent_block.add_parent(parent_block.nodelist)
                 parent_block.nodelist = block_node.nodelist
+        return compiled_parent
+    
+    def render(self, context):
+        if self.compiled_parent:
+            compiled_parent = self.compiled_parent
+        else:
+            compiled_parent = process_parent( self, context )
         return compiled_parent.render(context)
 
 class ConstantIncludeNode(Node):
