Reindented according to new standard, without tabs.
Also added one more os2 specific piece of code, by Jeff Rush.
diff --git a/Lib/os.py b/Lib/os.py
index 2776cd7..6f7e3ed 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -24,151 +24,165 @@
 altsep = None
 
 if 'posix' in _names:
-	name = 'posix'
-	curdir = '.'; pardir = '..'; sep = '/'; pathsep = ':'
-	defpath = ':/bin:/usr/bin'
-	from posix import *
-	try:
-		from posix import _exit
-	except ImportError:
-		pass
-	import posixpath
-	path = posixpath
-	del posixpath
+    name = 'posix'
+    curdir = '.'; pardir = '..'; sep = '/'; pathsep = ':'
+    defpath = ':/bin:/usr/bin'
+    from posix import *
+    try:
+        from posix import _exit
+    except ImportError:
+        pass
+    import posixpath
+    path = posixpath
+    del posixpath
 elif 'nt' in _names:
-	name = 'nt'
-	curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
-	defpath = '.;C:\\bin'
-	from nt import *
-	try:
-		from nt import _exit
-	except ImportError:
-		pass
-	import ntpath
-	path = ntpath
-	del ntpath
+    name = 'nt'
+    curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
+    defpath = '.;C:\\bin'
+    from nt import *
+    try:
+        from nt import _exit
+    except ImportError:
+        pass
+    import ntpath
+    path = ntpath
+    del ntpath
 elif 'dos' in _names:
-	name = 'dos'
-	curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
-	defpath = '.;C:\\bin'
-	from dos import *
-	try:
-		from dos import _exit
-	except ImportError:
-		pass
-	import dospath
-	path = dospath
-	del dospath
+    name = 'dos'
+    curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
+    defpath = '.;C:\\bin'
+    from dos import *
+    try:
+        from dos import _exit
+    except ImportError:
+        pass
+    import dospath
+    path = dospath
+    del dospath
 elif 'os2' in _names:
-	name = 'os2'
-	curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
-	defpath = '.;C:\\bin'
-	from os2 import *
-	try:
-		from os2 import _exit
-	except ImportError:
-		pass
-	import ntpath
-	path = ntpath
-	del ntpath
+    name = 'os2'
+    curdir = '.'; pardir = '..'; sep = '\\'; pathsep = ';'
+    defpath = '.;C:\\bin'
+    from os2 import *
+    try:
+        from os2 import _exit
+    except ImportError:
+        pass
+    import ntpath
+    path = ntpath
+    del ntpath
 elif 'mac' in _names:
-	name = 'mac'
-	curdir = ':'; pardir = '::'; sep = ':'; pathsep = '\n'
-	defpath = ':'
-	from mac import *
-	try:
-		from mac import _exit
-	except ImportError:
-		pass
-	import macpath
-	path = macpath
-	del macpath
+    name = 'mac'
+    curdir = ':'; pardir = '::'; sep = ':'; pathsep = '\n'
+    defpath = ':'
+    from mac import *
+    try:
+        from mac import _exit
+    except ImportError:
+        pass
+    import macpath
+    path = macpath
+    del macpath
 else:
-	raise ImportError, 'no os specific module found'
+    raise ImportError, 'no os specific module found'
 
 del _names
 
 # Make sure os.environ exists, at least
 try:
-	environ
+    environ
 except NameError:
-	environ = {}
+    environ = {}
 
 def execl(file, *args):
-	execv(file, args)
+    execv(file, args)
 
 def execle(file, *args):
-	env = args[-1]
-	execve(file, args[:-1], env)
+    env = args[-1]
+    execve(file, args[:-1], env)
 
 def execlp(file, *args):
-	execvp(file, args)
+    execvp(file, args)
 
 def execlpe(file, *args):
-	env = args[-1]
-	execvpe(file, args[:-1], env)
+    env = args[-1]
+    execvpe(file, args[:-1], env)
 
 def execvp(file, args):
-	_execvpe(file, args)
+    _execvpe(file, args)
 
 def execvpe(file, args, env):
-	_execvpe(file, args, env)
+    _execvpe(file, args, env)
 
 _notfound = None
 def _execvpe(file, args, env = None):
-	if env:
-		func = execve
-		argrest = (args, env)
-	else:
-		func = execv
-		argrest = (args,)
-		env = environ
-	global _notfound
-	head, tail = path.split(file)
-	if head:
-		apply(func, (file,) + argrest)
-		return
-	if env.has_key('PATH'):
-		envpath = env['PATH']
-	else:
-		envpath = defpath
-	import string
-	PATH = string.splitfields(envpath, pathsep)
-	if not _notfound:
-		import tempfile
-		# Exec a file that is guaranteed not to exist
-		try: execv(tempfile.mktemp(), ())
-		except error, _notfound: pass
-	exc, arg = error, _notfound
-	for dir in PATH:
-		fullname = path.join(dir, file)
-		try:
-			apply(func, (fullname,) + argrest)
-		except error, (errno, msg):
-			if errno != arg[0]:
-				exc, arg = error, (errno, msg)
-	raise exc, arg
+    if env:
+        func = execve
+        argrest = (args, env)
+    else:
+        func = execv
+        argrest = (args,)
+        env = environ
+    global _notfound
+    head, tail = path.split(file)
+    if head:
+        apply(func, (file,) + argrest)
+        return
+    if env.has_key('PATH'):
+        envpath = env['PATH']
+    else:
+        envpath = defpath
+    import string
+    PATH = string.splitfields(envpath, pathsep)
+    if not _notfound:
+        import tempfile
+        # Exec a file that is guaranteed not to exist
+        try: execv(tempfile.mktemp(), ())
+        except error, _notfound: pass
+    exc, arg = error, _notfound
+    for dir in PATH:
+        fullname = path.join(dir, file)
+        try:
+            apply(func, (fullname,) + argrest)
+        except error, (errno, msg):
+            if errno != arg[0]:
+                exc, arg = error, (errno, msg)
+    raise exc, arg
 
 # Change environ to automatically call putenv() if it exists
 try:
-	# This will fail if there's no putenv
-	putenv
+    # This will fail if there's no putenv
+    putenv
 except NameError:
-	pass
+    pass
 else:
-	import UserDict
+    import UserDict
 
-	class _Environ(UserDict.UserDict):
-		def __init__(self, environ):
-			UserDict.UserDict.__init__(self)
-			self.data = environ
-		def __getinitargs__(self):
-			import copy
-			return (copy.copy(self.data),)
-		def __setitem__(self, key, item):
-			putenv(key, item)
-			self.data[key] = item
-		def __copy__(self):
-			return _Environ(self.data.copy())
+    if name in ('os2', ):  # Where Env Var Names Must Be UPPERCASE
+        import string
+        class _Environ(UserDict.UserDict):
+            def __init__(self, environ):
+                UserDict.UserDict.__init__(self)
+                self.data = environ
+            def __setitem__(self, key, item):
+                key = string.upper(key)
+                putenv(key, item)
+                self.data[key] = item
+            def __getitem__(self, key):
+                return self.data[string.upper(key)]
 
-	environ = _Environ(environ)
+    else:  # Where Env Var Names Can Be Mixed Case
+        class _Environ(UserDict.UserDict):
+            def __init__(self, environ):
+                UserDict.UserDict.__init__(self)
+                self.data = environ
+            def __getinitargs__(self):
+                import copy
+                return (copy.copy(self.data),)
+            def __setitem__(self, key, item):
+                putenv(key, item)
+                self.data[key] = item
+            def __copy__(self):
+                return _Environ(self.data.copy())
+
+    environ = _Environ(environ)