diff --git a/src/org/apache/xalan/transformer/TransformerImpl.java b/src/org/apache/xalan/transformer/TransformerImpl.java
index 7511d1d..2c10ea7 100644
--- a/src/org/apache/xalan/transformer/TransformerImpl.java
+++ b/src/org/apache/xalan/transformer/TransformerImpl.java
@@ -2035,31 +2035,35 @@
     ElemTemplateElement t = elem.getFirstChildElem();
 
     if (null == t)
-      return;
-      
+      return;      
+    
     if(elem.hasTextLitOnly() && org.apache.xalan.processor.TransformerFactoryImpl.m_optimize)
-    {
+    {      
       char[] chars = ((ElemTextLiteral)t).getChars();
       try
       {
-        // %TBD% Have to push stuff on for tooling...
+        // Have to push stuff on for tooling...
+        this.pushElemTemplateElement(t);
         m_resultTreeHandler.characters(chars, 0, chars.length);
       }
       catch(SAXException se)
       {
         throw new TransformerException(se);
       }
+      finally
+      {
+        this.popElemTemplateElement();
+      }
       return;
     }
 
-    XPathContext xctxt = m_xcontext;
-
 //    // Check for infinite loops if we have to.
 //    boolean check = (m_stackGuard.m_recursionLimit > -1);
 //
 //    if (check)
 //      getStackGuard().push(elem, xctxt.getCurrentNode());
 
+    XPathContext xctxt = m_xcontext;
     xctxt.pushSAXLocatorNull();
     int currentTemplateElementsTop = m_currentTemplateElementsTop;
     m_currentTemplateElementsTop++;
