Fix handling of SystemExit and exit code.  Patch by Brodie Rao.
diff --git a/Lib/multiprocessing/process.py b/Lib/multiprocessing/process.py
index 893507b..3d32add 100644
--- a/Lib/multiprocessing/process.py
+++ b/Lib/multiprocessing/process.py
@@ -266,7 +266,7 @@
                 exitcode = e.args[0]
             else:
                 sys.stderr.write(str(e.args[0]) + '\n')
-                exitcode = 0 if isinstance(e.args[0], str) else 1
+                exitcode = 1
         except:
             exitcode = 1
             import traceback
diff --git a/Lib/test/test_multiprocessing.py b/Lib/test/test_multiprocessing.py
index 86cf5c1..77ad0f7 100644
--- a/Lib/test/test_multiprocessing.py
+++ b/Lib/test/test_multiprocessing.py
@@ -467,7 +467,7 @@
         testfn = test.support.TESTFN
         self.addCleanup(test.support.unlink, testfn)
 
-        for reason, code in (([1, 2, 3], 1), ('ignore this', 0)):
+        for reason, code in (([1, 2, 3], 1), ('ignore this', 1)):
             p = self.Process(target=self._test_sys_exit, args=(reason, testfn))
             p.daemon = True
             p.start()