diff --git a/include/XSLT/impl/xslt_attribute.hpp b/include/XSLT/impl/xslt_attribute.hpp index 665e7f00..5775e409 100755 --- a/include/XSLT/impl/xslt_attribute.hpp +++ b/include/XSLT/impl/xslt_attribute.hpp @@ -50,6 +50,7 @@ public: } // if ... context.sink().start_attribute(name, namesp); + ChainStackFrame frame(context); execute_children(node, context); context.sink().end_attribute(); } // execute diff --git a/include/XSLT/impl/xslt_element.hpp b/include/XSLT/impl/xslt_element.hpp index a60eeba9..af34c2ef 100755 --- a/include/XSLT/impl/xslt_element.hpp +++ b/include/XSLT/impl/xslt_element.hpp @@ -55,6 +55,7 @@ public: if(context.sink().start_element(name, namesp)) { + ChainStackFrame frame(context); execute_children(node, context); context.sink().end_element(name, namesp); } diff --git a/include/XSLT/impl/xslt_inline_element.hpp b/include/XSLT/impl/xslt_inline_element.hpp index 70d2b555..e792b196 100644 --- a/include/XSLT/impl/xslt_inline_element.hpp +++ b/include/XSLT/impl/xslt_inline_element.hpp @@ -70,6 +70,7 @@ public: for(std::vector::const_iterator a = attrs_.begin(), ae = attrs_.end(); a != ae; ++a) a->execute(node, context); + ChainStackFrame frame(context); execute_children(node, context); context.sink().end_element(name_, namespace_); }