<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -774,10 +774,11 @@ class BaseTemplate:
     def _compile(self, code):
         env = self.make_env(self._globals or {}, self._builtins)
         exec(code, env)
-        return env['__template__']
+        return env['wrapper']
 
     def __call__(self, *a, **kw):
-        out = self.t(*a, **kw)
+        t = self.t()
+        out = t(*a, **kw)
         return self._join_output(out)
         
     def _join_output(self, out):
@@ -796,7 +797,7 @@ class BaseTemplate:
     def make_env(self, globals, builtins):
         return dict(globals,
             __builtins__=builtins, 
-            loop=ForLoop(),
+            ForLoop=ForLoop,
             escape_=self._escape,
             join_=self._join
         )
@@ -879,6 +880,11 @@ class Template(BaseTemplate):
         
     def compile_template(self, template_string, filename):
         code = Template.generate_code(template_string, filename)
+        code = &quot;def wrapper():\n&quot; + \
+               &quot;    loop=ForLoop()\n&quot; + \
+               re.compile('^', re.M).sub('    ', code) + \
+               &quot;\n&quot; + \
+               &quot;    return __template__&quot;
     
         def get_source_line(filename, lineno):
             try:
@@ -1068,7 +1074,7 @@ def compile_templates(root):
             gen_code = _gen % (name, code)
             out.write(gen_code)
             out.write('\n\n')
-            out.write('%s = CompiledTemplate(%s(), %s)\n\n' % (name, name, repr(path)))
+            out.write('%s = CompiledTemplate(%s, %s)\n\n' % (name, name, repr(path)))
 
             # create template to make sure it compiles
             t = Template(open(path).read(), path)</diff>
      <filename>web/template.py</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1e2637fed6f34707e0d7c744c548a4e60bce3619</id>
    </parent>
  </parents>
  <author>
    <name>Anand Chitipothu</name>
    <email>anandology@gmail.com</email>
  </author>
  <url>http://github.com/webpy/webpy/commit/5dd4292d4faa73188a0b52bef57b806a086f6770</url>
  <id>5dd4292d4faa73188a0b52bef57b806a086f6770</id>
  <committed-date>2009-11-07T00:06:55-08:00</committed-date>
  <authored-date>2009-11-07T00:06:55-08:00</authored-date>
  <message>fix issue with loop.xx variables in templetor (Bug#476708)</message>
  <tree>373fbb0a17ddf1f178b69a098f251ffc927437a0</tree>
  <committer>
    <name>Anand Chitipothu</name>
    <email>anandology@gmail.com</email>
  </committer>
</commit>
