Only supply popen2, popen3 when fork exists.
(This avoids defining non-working versions of these on the Mac.)
diff --git a/Lib/os.py b/Lib/os.py
index c804c3a..70af0a9 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -454,16 +454,18 @@
         return spawnvpe(mode, file, args[:-1], env)
 
 
-if not _exists("popen2"):
-    def popen2(cmd, mode="t", bufsize=-1):
-        assert mode[:1] in ("b", "t")
-        import popen2
-        stdout, stdin = popen2.popen2(cmd, bufsize)
-        return stdin, stdout
+# Supply popen2 etc. (for Unix)
+if _exists("fork"):
+    if not _exists("popen2"):
+        def popen2(cmd, mode="t", bufsize=-1):
+            assert mode[:1] in ("b", "t")
+            import popen2
+            stdout, stdin = popen2.popen2(cmd, bufsize)
+            return stdin, stdout
 
-if not _exists("popen3"):
-    def popen3(cmd, mode="t", bufsize=-1):
-        assert mode[:1] in ("b", "t")
-        import popen2
-        stdout, stdin, stderr = popen2.popen3(cmd, bufsize)
-        return stdin, stdout, stderr
+    if not _exists("popen3"):
+        def popen3(cmd, mode="t", bufsize=-1):
+            assert mode[:1] in ("b", "t")
+            import popen2
+            stdout, stdin, stderr = popen2.popen3(cmd, bufsize)
+            return stdin, stdout, stderr