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,32 @@
         self.runReactor(reactor)
 
 
+    def test_processExitedRaises(self):
+        """
+        Test that a protocol raising an exception inside processExited
+        doesn't cause the reactor to explode.
+        """
+        reactor = self.buildReactor()
+
+        class TestException(Exception):
+            pass
+
+        class Protocol(ProcessProtocol):
+            def processExited(self, reason):
+                reactor.callLater(0.2, lambda: reactor.stop())
+                raise TestException("processedExited raised")
+
+        protocol = Protocol()
+        transport = reactor.spawnProcess(
+               protocol, sys.executable, [sys.executable, "-c", ""],
+               usePTY=self.usePTY)
+        reactor.run()
+
+        # TODO: figure out how to regain control of the reactor and raise
+        #       an error.
+
+
+
 class ProcessTestsBuilder(ProcessTestsBuilderBase):
     """
     Builder defining tests relating to L{IReactorProcess} for child processes
