diff --git a/Lib/multifile.py b/Lib/multifile.py
index 38a5a46..e0305d8 100644
--- a/Lib/multifile.py
+++ b/Lib/multifile.py
@@ -30,6 +30,8 @@
 import sys
 import string
 
+__all__ = ["MultiFile","Error"]
+
 class Error(Exception):
     pass
 
diff --git a/Lib/mutex.py b/Lib/mutex.py
index 2348a2e..33baea1 100644
--- a/Lib/mutex.py
+++ b/Lib/mutex.py
@@ -12,6 +12,8 @@
 for lock, where a function is called once the lock is aquired.
 """
 
+__all__ = ["mutex"]
+
 class mutex:
     def __init__(self):
         """Create a new mutex -- initially unlocked."""
diff --git a/Lib/netrc.py b/Lib/netrc.py
index 6bc0292..bf944b7 100644
--- a/Lib/netrc.py
+++ b/Lib/netrc.py
@@ -4,6 +4,8 @@
 
 import os, shlex
 
+__all__ = ["netrc"]
+
 class netrc:
     def __init__(self, file=None):
         if not file:
diff --git a/Lib/nntplib.py b/Lib/nntplib.py
index a8aba48..eddd31a 100644
--- a/Lib/nntplib.py
+++ b/Lib/nntplib.py
@@ -33,7 +33,10 @@
 import socket
 import string
 
-
+__all__ = ["NNTP","NNTPReplyError","NNTPTemporaryError",
+           "NNTPPermanentError","NNTPProtocolError","NNTPDataError",
+           "error_reply","error_temp","error_perm","error_proto",
+           "error_data",]
 
 # Exceptions raised when an error or invalid response is received
 class NNTPError(Exception):
diff --git a/Lib/ntpath.py b/Lib/ntpath.py
index 571a7d0..63860ce7 100644
--- a/Lib/ntpath.py
+++ b/Lib/ntpath.py
@@ -8,6 +8,10 @@
 import os
 import stat
 
+__all__ = ["normcase","isabs","join","splitdrive","split","splitext",
+           "basename","dirname","commonprefix","getsize","getmtime",
+           "getatime","islink","exists","isdir","isfile","ismount",
+           "walk","expanduser","expandvars","normpath","abspath","splitunc"]
 
 # Normalize the case of a pathname and map slashes to backslashes.
 # Other normalizations (such as optimizing '../' away) are not done
diff --git a/Lib/nturl2path.py b/Lib/nturl2path.py
index 2d08eee..7e78cb1 100644
--- a/Lib/nturl2path.py
+++ b/Lib/nturl2path.py
@@ -1,5 +1,7 @@
 """Convert a NT pathname to a file URL and vice versa."""
 
+__all__ = ["url2pathname"]
+
 def url2pathname(url):
     r"""Convert a URL to a DOS path.
 
diff --git a/Lib/os.py b/Lib/os.py
index 0ccdad2..1583323 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -19,12 +19,22 @@
 (e.g., split and join).
 """
 
+#'
+
 import sys
 
 _names = sys.builtin_module_names
 
 altsep = None
 
+__all__ = []
+
+def _get_exports_list(module):
+    try:
+        return list(module.__all__)
+    except AttributeError:
+        return [n for n in dir(module) if n[0] != '_']
+
 if 'posix' in _names:
     name = 'posix'
     linesep = '\n'
@@ -38,6 +48,11 @@
     import posixpath
     path = posixpath
     del posixpath
+
+    import posix
+    __all__.extend(_get_exports_list(posix))
+    del posix
+
 elif 'nt' in _names:
     name = 'nt'
     linesep = '\r\n'
@@ -52,6 +67,11 @@
     import ntpath
     path = ntpath
     del ntpath
+
+    import nt
+    __all__.extend(_get_exports_list(nt))
+    del nt
+
 elif 'dos' in _names:
     name = 'dos'
     linesep = '\r\n'
@@ -65,6 +85,11 @@
     import dospath
     path = dospath
     del dospath
+
+    import dos
+    __all__.extend(_get_exports_list(dos))
+    del dos
+
 elif 'os2' in _names:
     name = 'os2'
     linesep = '\r\n'
@@ -78,6 +103,11 @@
     import ntpath
     path = ntpath
     del ntpath
+
+    import os2
+    __all__.extend(_get_exports_list(os2))
+    del os2
+
 elif 'mac' in _names:
     name = 'mac'
     linesep = '\r'
@@ -91,6 +121,11 @@
     import macpath
     path = macpath
     del macpath
+
+    import mac
+    __all__.extend(_get_exports_list(mac))
+    del mac
+
 elif 'ce' in _names:
     name = 'ce'
     linesep = '\r\n'
@@ -106,13 +141,22 @@
     import ntpath
     path = ntpath
     del ntpath
+
+    import ce
+    __all__.extend(_get_exports_list(ce))
+    del ce
+
 else:
     raise ImportError, 'no os specific module found'
 
+__all__.append("path")
+
 del _names
 
 sys.modules['os.path'] = path
 
+#'
+
 # Super directory utilities.
 # (Inspired by Eric Raymond; the doc strings are mostly his)
 
@@ -180,6 +224,8 @@
         except error:
             pass
 
+__all__.extend(["makedirs", "removedirs", "renames"])
+
 # Make sure os.environ exists, at least
 try:
     environ
@@ -234,6 +280,8 @@
     args may be a list or tuple of strings. """
     _execvpe(file, args, env)
 
+__all__.extend(["execl","execle","execlp","execlpe","execvp","execvpe"])
+
 _notfound = None
 def _execvpe(file, args, env=None):
     if env is not None:
@@ -319,6 +367,7 @@
 
     The optional second argument can specify an alternate default."""
     return environ.get(key, default)
+__all__.append("getenv")
 
 def _exists(name):
     try:
@@ -454,6 +503,10 @@
         return spawnvpe(mode, file, args[:-1], env)
 
 
+    __all__.extend(["spawnlp","spawnlpe","spawnv", "spawnve","spawnvp",
+                    "spawnvpe","spawnl","spawnle",])
+
+
 # Supply popen2 etc. (for Unix)
 if _exists("fork"):
     if not _exists("popen2"):
@@ -461,15 +514,18 @@
             import popen2
             stdout, stdin = popen2.popen2(cmd, bufsize)
             return stdin, stdout
+        __all__.append("popen2")
 
     if not _exists("popen3"):
         def popen3(cmd, mode="t", bufsize=-1):
             import popen2
             stdout, stdin, stderr = popen2.popen3(cmd, bufsize)
             return stdin, stdout, stderr
+        __all__.append("popen3")
 
     if not _exists("popen4"):
         def popen4(cmd, mode="t", bufsize=-1):
             import popen2
             stdout, stdin = popen2.popen4(cmd, bufsize)
             return stdin, stdout
+        __all__.append("popen4")
diff --git a/Lib/test/test___all__.py b/Lib/test/test___all__.py
index f11a0c7..853a816 100644
--- a/Lib/test/test___all__.py
+++ b/Lib/test/test___all__.py
@@ -87,4 +87,11 @@
 check_all("mimetools")
 check_all("mimetypes")
 check_all("mimify")
+check_all("multifile")
+check_all("mutex")
+check_all("netrc")
+check_all("nntplib")
+check_all("ntpath")
+check_all("nturl2path")
+check_all("os")
 check_all("robotparser")
