diff -r 36ec0c51e5e5 genshi/template/markup.py
--- a/genshi/template/markup.py	Mon Feb 15 21:40:49 2010 +0100
+++ b/genshi/template/markup.py	Mon Feb 15 22:28:28 2010 +0100
@@ -358,7 +358,7 @@
                         pre_end -= 1
                     inner = _strip(stream)
                     if pre_end > 0:
-                        inner = self._match(inner, ctxt, end=pre_end, **vars)
+                        inner = self._match(inner, ctxt, start=start, end=pre_end, **vars)
                     content = self._include(chain([event], inner, tail), ctxt)
                     if 'not_buffered' not in hints:
                         content = list(content)
diff -r 36ec0c51e5e5 genshi/template/tests/directives.py
--- a/genshi/template/tests/directives.py	Mon Feb 15 21:40:49 2010 +0100
+++ b/genshi/template/tests/directives.py	Mon Feb 15 22:28:28 2010 +0100
@@ -961,6 +961,31 @@
     #        Hello Dude
     #      </span>
     #    </div>""", tmpl.generate().render(encoding=None))
+    
+    def test_triple_match_produces_no_duplicate_items(self):
+        tmpl = MarkupTemplate("""<doc xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://genshi.edgewall.org/">
+              <div py:match="div[@id='content']" py:attrs="select('@*')" once="true">
+                <ul id="tabbed_pane" />
+                ${select('*')}
+              </div>
+
+              <body py:match="body" once="true" buffer="false">
+                ${select('*|text()')}
+              </body>
+              <body py:match="body" once="true" buffer="false">
+                  ${select('*|text()')}
+              </body>
+
+              <body>
+                <div id="content">
+                  <h1>Ticket X</h1>
+                </div>
+              </body>
+            </doc>""")
+        output = tmpl.generate().render('xhtml', doctype='xhtml')
+        matches = re.findall("tabbed_pane", output)
+        self.assertNotEqual(None, matches)
+        self.assertEqual(1, len(matches))
 
 
 class ContentDirectiveTestCase(unittest.TestCase):

