diff --git a/Lib/dos-8x3/multifil.py b/Lib/dos-8x3/multifil.py
index 977b92f..cc8f43c 100755
--- a/Lib/dos-8x3/multifil.py
+++ b/Lib/dos-8x3/multifil.py
@@ -21,7 +21,7 @@
 The latter sequence may be used recursively at (A).
 It is also allowed to use multiple push()...pop() sequences.
 
-If seekable is given as 0, the class code will not do the bookeeping
+If seekable is given as 0, the class code will not do the bookkeeping
 it normally attempts in order to make seeks relative to the beginning of the
 current file part.  This may be useful when using MultiFile with a non-
 seekable stream object.
diff --git a/Lib/dos-8x3/rlcomple.py b/Lib/dos-8x3/rlcomple.py
index 7a248fe..8cd21ed 100644
--- a/Lib/dos-8x3/rlcomple.py
+++ b/Lib/dos-8x3/rlcomple.py
@@ -84,7 +84,7 @@
         """Compute matches when text contains a dot.
 
         Assuming the text is of the form NAME.NAME....[NAME], and is
-        evaluabable in the globals of __main__, it will be evaluated
+        evaluatable in the globals of __main__, it will be evaluated
         and its attributes (as revealed by dir()) are used as possible
         completions.  (For class instances, class members are are also
         considered.)
diff --git a/Lib/dos-8x3/sre_comp.py b/Lib/dos-8x3/sre_comp.py
index 590e45f..fa0cf37 100644
--- a/Lib/dos-8x3/sre_comp.py
+++ b/Lib/dos-8x3/sre_comp.py
@@ -20,7 +20,7 @@
     if len(array.array(WORDSIZE, [0]).tostring()) == _sre.getcodesize():
         break
 else:
-    raise RuntimeError, "cannot find a useable array type"
+    raise RuntimeError, "cannot find a usable array type"
 
 def _compile(code, pattern, flags):
     # internal: compile a (sub)pattern
diff --git a/Lib/dos-8x3/stringol.py b/Lib/dos-8x3/stringol.py
index 8fa7dd4..c3e6f6f 100644
--- a/Lib/dos-8x3/stringol.py
+++ b/Lib/dos-8x3/stringol.py
@@ -118,7 +118,7 @@
     """join(list [,sep]) -> string
 
     Return a string composed of the words in list, with
-    intervening occurences of sep.  The default separator is a
+    intervening occurrences of sep.  The default separator is a
     single space.
 
     (joinfields and join are synonymous)
diff --git a/Lib/dos-8x3/test_ima.py b/Lib/dos-8x3/test_ima.py
index 63ab138..6b144c6 100644
--- a/Lib/dos-8x3/test_ima.py
+++ b/Lib/dos-8x3/test_ima.py
@@ -62,7 +62,7 @@
     image = imageop.grey2rgb(greyimage, width, height)
     
     # Convert a 8-bit deep greyscale image to a 1-bit deep image by
-    # tresholding all the pixels. The resulting image is tightly packed
+    # thresholding all the pixels. The resulting image is tightly packed
     # and is probably only useful as an argument to mono2grey. 
     if verbose:
         print 'grey2mono'
diff --git a/Lib/dos-8x3/threadst.py b/Lib/dos-8x3/threadst.py
index c2b08f2..d9c2788 100644
--- a/Lib/dos-8x3/threadst.py
+++ b/Lib/dos-8x3/threadst.py
@@ -1,7 +1,7 @@
 import thread
-# Start empty thread to initialise thread mechanics (and global lock!)
+# Start empty thread to initialize thread mechanics (and global lock!)
 # This thread will finish immediately thus won't make much influence on
-# test results by itself, only by that fact that it initialises global lock
+# test results by itself, only by that fact that it initializes global lock
 thread.start_new_thread(lambda : 1, ())
 
 import test.pystone
diff --git a/Lib/dos-8x3/tracebac.py b/Lib/dos-8x3/tracebac.py
index 4675077..d219340 100755
--- a/Lib/dos-8x3/tracebac.py
+++ b/Lib/dos-8x3/tracebac.py
@@ -117,7 +117,7 @@
 	have the same meaning as the corresponding arguments to
 	print_exception().  The return value is a list of strings, each
 	ending in a newline and some containing internal newlines.  When 
-	these lines are contatenated and printed, exactly the same text is
+	these lines are concatenated and printed, exactly the same text is
 	printed as does print_exception()."""
 	if tb:
 		list = ['Traceback (most recent call last):\n']
diff --git a/Lib/dos-8x3/userlist.py b/Lib/dos-8x3/userlist.py
index 7bd0298..d4a8d2f 100755
--- a/Lib/dos-8x3/userlist.py
+++ b/Lib/dos-8x3/userlist.py
@@ -4,7 +4,7 @@
     def __init__(self, initlist=None):
         self.data = []
         if initlist is not None:
-            # XXX should this accept an arbitary sequence?
+            # XXX should this accept an arbitrary sequence?
             if type(initlist) == type(self.data):
                 self.data[:] = initlist
             elif isinstance(initlist, UserList):
