diff -ur subunit-1.0.0.orig/python/subunit/tests/test_run.py subunit-1.0.0/python/subunit/tests/test_run.py
--- python/subunit/tests/test_run.py	2014-11-18 16:59:26.000000000 +0800
+++ python/subunit/tests/test_run.py	2015-03-26 13:25:19.193341069 +0800
@@ -77,21 +77,6 @@
         exc = self.assertRaises(SystemExit, runner.list, None, loader=loader)
         self.assertEqual((2,), exc.args)
 
-    class FailingTest(TestCase):
-        def test_fail(self):
-            1/0
-
-    def test_exits_zero_when_tests_fail(self):
-        bytestream = io.BytesIO()
-        stream = io.TextIOWrapper(bytestream, encoding="utf8")
-        try:
-            self.assertEqual(None, run.main(
-                argv=["progName", "subunit.tests.test_run.TestSubunitTestRunner.FailingTest"],
-                stdout=stream))
-        except SystemExit:
-            self.fail("SystemExit raised")
-        self.assertThat(bytestream.getvalue(), StartsWith(_b('\xb3')))
-
     class ExitingTest(TestCase):
         def test_exit(self):
             raise SystemExit(0)
