diff --git a/Lib/os.py b/Lib/os.py
index 48bcea2..b8d7a0f 100644
--- a/Lib/os.py
+++ b/Lib/os.py
@@ -3,7 +3,7 @@
 This exports:
   - all functions from posix, nt, os2, mac, or ce, e.g. unlink, stat, etc.
   - os.path is one of the modules posixpath, ntpath, or macpath
-  - os.name is 'posix', 'nt', 'os2', 'mac', 'ce' or 'riscos'
+  - os.name is 'posix', 'nt', 'os2', 'mac' or 'ce'
   - os.curdir is a string representing the current directory ('.' or ':')
   - os.pardir is a string representing the parent directory ('..' or '::')
   - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\')
@@ -112,20 +112,6 @@
     __all__.extend(_get_exports_list(ce))
     del ce
 
-elif 'riscos' in _names:
-    name = 'riscos'
-    linesep = '\n'
-    from riscos import *
-    try:
-        from riscos import _exit
-    except ImportError:
-        pass
-    import riscospath as path
-
-    import riscos
-    __all__.extend(_get_exports_list(riscos))
-    del riscos
-
 else:
     raise ImportError, 'no os specific module found'
 
@@ -404,62 +390,58 @@
     raise error, last_exc, tb
 
 
-if name == "riscos":
-    # On RISC OS, all env access goes through getenv and putenv
-    from riscosenviron import _Environ
+# Change environ to automatically call putenv(), unsetenv if they exist.
+from _abcoll import MutableMapping  # Can't use collections (bootstrap)
+
+class _Environ(MutableMapping):
+    def __init__(self, environ, keymap, putenv, unsetenv):
+        self.keymap = keymap
+        self.putenv = putenv
+        self.unsetenv = unsetenv
+        self.data = data = {}
+        for key, value in environ.items():
+            data[keymap(key)] = str(value)
+    def __getitem__(self, key):
+        return self.data[self.keymap(key)]
+    def __setitem__(self, key, value):
+        value = str(value)
+        self.putenv(key, value)
+        self.data[self.keymap(key)] = value
+    def __delitem__(self, key):
+        self.unsetenv(key)
+        del self.data[self.keymap(key)]
+    def __iter__(self):
+        for key in self.data:
+            yield key
+    def __len__(self):
+        return len(self.data)
+    def copy(self):
+        return dict(self)
+    def setdefault(self, key, value):
+        if key not in self:
+            self[key] = value
+        return self[key]
+
+try:
+    _putenv = putenv
+except NameError:
+    _putenv = lambda key, value: None
 else:
-    # Change environ to automatically call putenv(), unsetenv if they exist.
-    from _abcoll import MutableMapping  # Can't use collections (bootstrap)
+    __all__.append("putenv")
 
-    class _Environ(MutableMapping):
-        def __init__(self, environ, keymap, putenv, unsetenv):
-            self.keymap = keymap
-            self.putenv = putenv
-            self.unsetenv = unsetenv
-            self.data = data = {}
-            for key, value in environ.items():
-                data[keymap(key)] = str(value)
-        def __getitem__(self, key):
-            return self.data[self.keymap(key)]
-        def __setitem__(self, key, value):
-            value = str(value)
-            self.putenv(key, value)
-            self.data[self.keymap(key)] = value
-        def __delitem__(self, key):
-            self.unsetenv(key)
-            del self.data[self.keymap(key)]
-        def __iter__(self):
-            for key in self.data:
-                yield key
-        def __len__(self):
-            return len(self.data)
-        def copy(self):
-            return dict(self)
-        def setdefault(self, key, value):
-            if key not in self:
-                self[key] = value
-            return self[key]
+try:
+    _unsetenv = unsetenv
+except NameError:
+    _unsetenv = lambda key: _putenv(key, "")
+else:
+    __all__.append("unsetenv")
 
-    try:
-        _putenv = putenv
-    except NameError:
-        _putenv = lambda key, value: None
-    else:
-        __all__.append("putenv")
+if name in ('os2', 'nt'): # Where Env Var Names Must Be UPPERCASE
+    _keymap = lambda key: str(key.upper())
+else:  # Where Env Var Names Can Be Mixed Case
+    _keymap = lambda key: str(key)
 
-    try:
-        _unsetenv = unsetenv
-    except NameError:
-        _unsetenv = lambda key: _putenv(key, "")
-    else:
-        __all__.append("unsetenv")
-
-    if name in ('os2', 'nt'): # Where Env Var Names Must Be UPPERCASE
-        _keymap = lambda key: str(key.upper())
-    else:  # Where Env Var Names Can Be Mixed Case
-        _keymap = lambda key: str(key)
-
-    environ = _Environ(environ, _keymap, _putenv, _unsetenv)
+environ = _Environ(environ, _keymap, _putenv, _unsetenv)
 
 
 def getenv(key, default=None):
diff --git a/Lib/plat-mac/bundlebuilder.py b/Lib/plat-mac/bundlebuilder.py
index d8186c1..f1ca5b8 100755
--- a/Lib/plat-mac/bundlebuilder.py
+++ b/Lib/plat-mac/bundlebuilder.py
@@ -272,7 +272,7 @@
 
 MAYMISS_MODULES = ['mac', 'os2', 'nt', 'ntpath', 'dos', 'dospath',
     'win32api', 'ce', '_winreg', 'nturl2path', 'sitecustomize',
-    'org.python.core', 'riscos', 'riscosenviron', 'riscospath'
+    'org.python.core'
 ]
 
 STRIP_EXEC = "/usr/bin/strip"
diff --git a/Lib/site.py b/Lib/site.py
index 47a46f6..30c54b0 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -180,7 +180,7 @@
         prefixes.append(sys.exec_prefix)
     for prefix in prefixes:
         if prefix:
-            if sys.platform in ('os2emx', 'riscos'):
+            if sys.platform == 'os2emx':
                 sitedirs = [os.path.join(prefix, "Lib", "site-packages")]
             elif os.sep == '/':
                 sitedirs = [os.path.join(prefix,
diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index 61c64e4..c71cebc 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -159,9 +159,6 @@
             dirlist.append(dirname)
         except _Folder.error:
             pass
-    elif _os.name == 'riscos':
-        dirname = _os.getenv('Wimp$ScrapDir')
-        if dirname: dirlist.append(dirname)
     elif _os.name == 'nt':
         dirlist.extend([ r'c:\temp', r'c:\tmp', r'\temp', r'\tmp' ])
     else:
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index e7596a5..58b2c0b 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -947,33 +947,6 @@
         test_threadedtempfile
         test_threading
         """,
-    'riscos':
-        """
-        test_asynchat
-        test_atexit
-        test_bsddb
-        test_bsddb3
-        test_commands
-        test_crypt
-        test_dbm
-        test_dl
-        test_fcntl
-        test_fork1
-        test_gdbm
-        test_grp
-        test_largefile
-        test_locale
-        test_mmap
-        test_openpty
-        test_poll
-        test_pty
-        test_pwd
-        test_sundry
-        test_thread
-        test_threaded_import
-        test_threadedtempfile
-        test_threading
-        """,
     'darwin':
         """
         test__locale
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 32c9cef..2233f84 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -11,7 +11,7 @@
 import bz2
 from bz2 import BZ2File, BZ2Compressor, BZ2Decompressor
 
-has_cmdline_bunzip2 = sys.platform not in ("win32", "os2emx", "riscos")
+has_cmdline_bunzip2 = sys.platform not in ("win32", "os2emx")
 
 class BaseTest(unittest.TestCase):
     "Base for other testcases."
diff --git a/Lib/test/test_mhlib.py b/Lib/test/test_mhlib.py
index ad66ede..09522f7 100644
--- a/Lib/test/test_mhlib.py
+++ b/Lib/test/test_mhlib.py
@@ -13,8 +13,7 @@
 import sys
 import mhlib
 
-if (sys.platform.startswith("win") or sys.platform=="riscos" or
-      sys.platform.startswith("atheos")):
+if sys.platform.startswith("win") or sys.platform.startswith("atheos"):
     # mhlib.updateline() renames a file to the name of a file that already
     # exists.  That causes a reasonable OS <wink> to complain in test_sequence
     # here, like the "OSError: [Errno 17] File exists" raised on Windows.
diff --git a/Lib/test/test_select.py b/Lib/test/test_select.py
index fd76674..b45ec7f 100644
--- a/Lib/test/test_select.py
+++ b/Lib/test/test_select.py
@@ -42,7 +42,7 @@
 
 def test():
     import sys
-    if sys.platform[:3] in ('win', 'mac', 'os2', 'riscos'):
+    if sys.platform[:3] in ('win', 'mac', 'os2'):
         if verbose:
             print("Can't test select easily on", sys.platform)
         return
diff --git a/Lib/test/test_signal.py b/Lib/test/test_signal.py
index 9093965..15c6e9c 100644
--- a/Lib/test/test_signal.py
+++ b/Lib/test/test_signal.py
@@ -3,7 +3,7 @@
 import signal
 import os, sys, time
 
-if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos':
+if sys.platform[:3] in ('win', 'os2'):
     raise TestSkipped, "Can't test signal on %s" % sys.platform
 
 MAX_DURATION = 20   # Entire test should last at most 20 sec.
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index fa4c3ef..2d9612e 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -142,8 +142,6 @@
 if os.name == 'java':
     # Jython disallows @ in module names
     TESTFN = '$test'
-elif os.name == 'riscos':
-    TESTFN = 'testfile'
 else:
     TESTFN = '@test'
 
diff --git a/Lib/test/test_threadsignals.py b/Lib/test/test_threadsignals.py
index 286c2e4..9f076ef 100644
--- a/Lib/test/test_threadsignals.py
+++ b/Lib/test/test_threadsignals.py
@@ -7,7 +7,7 @@
 import sys
 from test.test_support import run_unittest, TestSkipped
 
-if sys.platform[:3] in ('win', 'os2') or sys.platform=='riscos':
+if sys.platform[:3] in ('win', 'os2'):
     raise TestSkipped, "Can't test signal on %s" % sys.platform
 
 process_pid = os.getpid()
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 91d6ba7..dff840e 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -26,10 +26,6 @@
         # urllib.pathname2url works, unfortunately...
         if os.name == 'mac':
             fname = '/' + fname.replace(':', '/')
-        elif os.name == 'riscos':
-            import string
-            fname = os.expand(fname)
-            fname = fname.translate(string.maketrans("/.", "./"))
 
         file_url = "file://%s" % fname
         f = urllib2.urlopen(file_url)
diff --git a/Lib/urllib.py b/Lib/urllib.py
index c55dee8..3ecfea7c 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -46,8 +46,6 @@
     from macurl2path import url2pathname, pathname2url
 elif os.name == 'nt':
     from nturl2path import url2pathname, pathname2url
-elif os.name == 'riscos':
-    from rourl2path import url2pathname, pathname2url
 else:
     def url2pathname(pathname):
         """OS-specific conversion from a relative URL of the 'file' scheme
