Index: genshi/filters/tests/transform.py
===================================================================
--- genshi/filters/tests/transform.py	(revision 999)
+++ genshi/filters/tests/transform.py	(working copy)
@@ -522,7 +522,16 @@
             self._filter('.', 'foo'),
             [[(None, TEXT, u'foo')]])
 
+    def test_filter_after_outside(self):
+        stream = _transform(
+            '<root>x</root>', Transformer('//root/text()').filter(lambda x: x))
+        self.assertEqual(
+            list(stream),
+            [(None, START, u'root'),
+             (OUTSIDE, TEXT, u'x'),
+             (None, END, u'root')])
 
+
 class MapTest(unittest.TestCase):
     def _map(self, select, kind=None):
         data = []
Index: genshi/filters/transform.py
===================================================================
--- genshi/filters/transform.py	(revision 999)
+++ genshi/filters/transform.py	(working copy)
@@ -912,7 +912,7 @@
                 for queue_event in flush(queue):
                     yield queue_event
             elif mark is OUTSIDE:
-                stopped = True
+                stopped = False
                 queue.append(event)
                 for mark, event in stream:
                     if mark is not OUTSIDE:
@@ -923,7 +923,7 @@
                 for queue_event in flush(queue):
                     yield queue_event
                 if not stopped:
-                    yield None, event
+                    yield mark, event
             else:
                 yield mark, event
         for queue_event in flush(queue):
