diff --git a/Lib/test/output/test_fork1 b/Lib/test/output/test_fork1
new file mode 100644
index 0000000..21fb526
--- /dev/null
+++ b/Lib/test/output/test_fork1
@@ -0,0 +1 @@
+test_fork1
diff --git a/Lib/test/test_fork1.py b/Lib/test/test_fork1.py
new file mode 100644
index 0000000..361664e
--- /dev/null
+++ b/Lib/test/test_fork1.py
@@ -0,0 +1,54 @@
+"""This test checks for correct fork() behavior.
+
+We want fork1() semantics -- only the forking thread survives in the
+child after a fork().
+
+On some systems (e.g. Solaris without posix threads) we find that all
+active threads survive in the child after a fork(); this is an error.
+
+"""
+
+import os, sys, time, thread
+
+LONGSLEEP = 2
+
+SHORTSLEEP = 0.5
+
+alive = {}
+
+def f(id):
+    while 1:
+        alive[id] = os.getpid()
+        try:
+            time.sleep(SHORTSLEEP)
+        except IOError:
+            pass
+
+def main():
+    for i in range(4):
+        thread.start_new(f, (i,))
+
+    time.sleep(LONGSLEEP)
+
+    a = alive.keys()
+    a.sort()
+    assert a == range(4)
+
+    cpid = os.fork()
+
+    if cpid == 0:
+        # Child
+        time.sleep(LONGSLEEP)
+        n = 0
+        pid = os.getpid()
+        for key in alive.keys():
+            if alive[key] == pid:
+                n = n+1
+        os._exit(n)
+    else:
+        # Parent
+        spid, status = os.waitpid(cpid, 0)
+        assert spid == cpid
+        assert status == 0, "cause = %d, exit = %d" % (status&0xff, status>>8)
+
+main()
