Index: twisted/internet/test/test_process.py
===================================================================
--- twisted/internet/test/test_process.py	(revision 32093)
+++ twisted/internet/test/test_process.py	(working copy)
@@ -298,6 +298,29 @@
         self.runReactor(reactor)
 
 
+    def test_processExitedRaises(self):
+        """
+        Test that a protocol raising an exception inside processExited
+        doesn't cause the reactor to explode.
+        """
+        class TestException(Exception):
+            pass
+
+        class Protocol(ProcessProtocol):
+            def processExited(self, reason):
+                raise TestException("processedExited raised")
+
+        reactor = self.buildReactor()
+        protocol = Protocol()
+        transport = reactor.spawnProcess(
+            protocol, sys.executable, [sys.executable, "-c", ""],
+            usePTY=self.usePTY)
+
+        transport.processEnded(0)
+        # TODO: would be good to regain control of the reactor here and
+        #       then fail via an assert
+
+
 class ProcessTestsBuilder(ProcessTestsBuilderBase):
     """
     Builder defining tests relating to L{IReactorProcess} for child processes
