Index: loader_tags.py
===================================================================
--- loader_tags.py	(wersja 3013)
+++ loader_tags.py	(kopia robocza)
@@ -43,6 +43,7 @@
         self.nodelist = nodelist
         self.parent_name, self.parent_name_expr = parent_name, parent_name_expr
         self.template_dirs = template_dirs
+        self.compiled_parent = None
 
     def __repr__(self):
         if self.parent_name_expr:
@@ -67,7 +68,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 +91,17 @@
                 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 = self.process_parent(context)
+            # cache it, if static
+            if self.parent_name:
+                self.compiled_parent = compiled_parent
+
         return compiled_parent.render(context)
 
 class ConstantIncludeNode(Node):
