diff --git a/Misc/cheatsheet b/Misc/cheatsheet
index c1411eb..b1a428b 100644
--- a/Misc/cheatsheet
+++ b/Misc/cheatsheet
@@ -41,6 +41,7 @@
 -h      print this help message and exit
 -i      Inspect interactively after running script (also PYTHONINSPECT=x) and
         force prompts, even if stdin appears not to be a terminal
+-m mod  run library module as a script (terminates option list
 -O      optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)
 -OO     remove doc-strings in addition to the -O optimizations
 -Q arg  division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
@@ -926,7 +927,6 @@
 abs(x)              Return the absolute value of number x.
 bool(x)             Returns True when the argument x is true and False otherwise.
 buffer(obj)         Creates a buffer reference to an object.
-callable(x)         Returns True if x callable, else False.
 chr(i)              Returns one-character string whose ASCII code isinteger i
 classmethod(f)      Converts a function f, into a method with the class as the
                     first argument.  Useful for creating alternative constructors.
@@ -934,14 +934,14 @@
 compile(string,     from which the code was read, or eg. '<string>'if not read
 filename, kind)     from file.kind can be 'eval' if string is a single stmt, or
                     'single' which prints the output of expression statements
-                    thatevaluate to something else than None, or be 'exec'.
+                    that evaluate to something else than None, or be 'exec'.
 complex(real[,      Builds a complex object (can also be done using J or j
 image])             suffix,e.g. 1+3J)
 delattr(obj, name)  deletes attribute named name of object obj <=> del obj.name
                     If no args, returns the list of names in current
 dict([items])       Create a new dictionary from the specified item list.
-dir([object])       localsymbol table. With a module, class or class
-                    instanceobject as arg, returns list of names in its attr.
+dir([object])       local symbol table. With a module, class or class
+                    instance object as arg, returns list of names in its attr.
                     dict.
 divmod(a,b)         Returns tuple of (a/b, a%b)
 enumerate(seq)      Return a iterator giving:  (0, seq[0]), (1, seq[1]), ...
@@ -956,7 +956,7 @@
 float(x)            Converts a number or a string to floating point.
 getattr(object,     [<default> arg added in 1.5.2]Gets attribute called name
 name[, default]))   from object,e.g. getattr(x, 'f') <=> x.f). If not found,
-                    raisesAttributeError or returns default if specified.
+                    raises AttributeError or returns default if specified.
 globals()           Returns a dictionary containing current global variables.
 hasattr(object,     Returns true if object has attr called name.
 name)
@@ -966,9 +966,7 @@
 id(object)          Returns a unique 'identity' integer for an object.
 int(x[, base])      base paramenter specifies base from which to convert string
                     values.
-intern(aString)     Enters aString in the table of "interned strings"
-                    andreturns the string. Interned strings are 'immortals'.
-isinstance(obj,     returns true if obj is an instance of class. Ifissubclass
+isinstance(obj,     Returns true if obj is an instance of class. Ifissubclass
 class)              (A,B) then isinstance(x,A) => isinstance(x,B)
 issubclass(class1,  returns true if class1 is derived from class2
 class2)
@@ -1001,26 +999,24 @@
   [, buffering]])
 pow(x, y [, z])     Returns x to power y [modulo z]. See also ** operator.
 property()          Created a property with access controlled by functions.
-range(start [,end   Returns list of ints from >= start and < end.With 1 arg,
-[, step]])          list from 0..arg-1With 2 args, list from start..end-1With 3
-                    args, list from start up to end by step
-reload(module)      after fixing it. If module was syntacticallycorrect but had
-                    an error in initialization, mustimport it one more time
-                    before calling reload().
-                    Returns a string containing a printable and if possible
-repr(object)        evaluable representation of an object. 
+range(start [,end   Returns list of ints from >= start and < end. With 1 arg,
+[, step]])          list from 0..arg-1. With 2 args, list from start..end-1.
+                    With 3 args, list from start up to end by step
+                    after fixing it.
+repr(object)        Returns a string containing a printable and if possible
+                    evaluable representation of an object. 
                     Class redefinable (__repr__). See also str().
 round(x, n=0)       Returns the floating point value x rounded to n digitsafter
                     the decimal point.
-setattr(object,     This is the counterpart of getattr().setattr(o, 'foobar',
-name, value)        3) <=> o.foobar = 3Creates attribute if it doesn't exist!
+setattr(object,     This is the counterpart of getattr(). setattr(o, 'foobar',
+name, value)        3) <=> o.foobar = 3. Creates attribute if it doesn't exist!
 slice([start,] stop Returns a slice object representing a range, with R/
-[, step])           Oattributes: start, stop, step.
-                    Returns a string containing a nicely
+[, step])           O attributes: start, stop, step.
 staticmethod()      Convert a function to method with no self or class
                     argument.  Useful for methods associated with a class that
                     do not need access to an object's internal state.
-str(object)         printablerepresentation of an object. Class overridable
+str(object)         Returns a string containing a nicely
+                    printable representation of an object. Class overridable
                     (__str__).See also repr().
 super(type)         Create an unbound super object.  Used to call cooperative
                     superclass methods.
@@ -1042,12 +1038,8 @@
 vars([object])      instance object as argumentreturns a dictionary
                     corresponding to the object'ssymbol table. Useful with "%"
                     formatting operator.
-xrange(start [, end Like range(), but doesn't actually store entire listall at
-[, step]])          once. Good to use in "for" loops when there is abig range
-                    and little memory.
-zip(seq1[, seq2,    Returns a list of tuples where each tuple contains the nth
-...])               element of each of the argument sequences.
-
+zip(seq1[, seq2,    Returns an iterator of tuples where each tuple contains
+...])               the nth element of each of the argument sequences.
 
 
 
@@ -1314,10 +1306,6 @@
                      in C that are linked into this interpreter.
 check_interval       How often to check for thread switches or signals(measured
                      in number of virtual machine instructions)
-exc_type, exc_value, Deprecated since release 1.5. Use exc_info() instead.
-exc_traceback
-exitfunc             User can set to a parameterless fcn. It will getcalled
-                     before interpreter exits.
 last_type,           Set only when an exception not handled andinterpreter
 last_value,          prints an error. Used by debuggers.
 last_traceback
@@ -1350,7 +1338,7 @@
 setprofile(func)   Sets a profile function for performance profiling.
                    Info on exception currently being handled; this is atuple
                    (exc_type, exc_value, exc_traceback).Warning: assigning the
-exc_info()         traceback return value to a loca variable in a
+exc_info()         traceback return value to a local variable in a
                    function handling an exception will cause a circular
                    reference.
 setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII.
@@ -1857,7 +1845,6 @@
 dumbdbm          A dumb and slow but simple dbm clone.
 [DEL:dump:DEL]   [DEL:Print python code that reconstructs a variable.:DEL]
 email            Comprehensive support for internet email.
-exceptions       Class based built-in exception hierarchy.
 filecmp          File comparison.
 fileinput        Helper class to quickly write a loop over all standard input
                  files.
@@ -1872,7 +1859,6 @@
                  www.pauahtun.org/pub/getargspy.zip
 getpass          Utilities to get a password and/or the current user name.
 glob             filename globbing.
-gopherlib        Gopher protocol client interface.
 [DEL:grep:DEL]   [DEL:'grep' utilities.:DEL]
 gzip             Read & write gzipped files.
 heapq            Priority queue implemented using lists organized as heaps.
@@ -1887,7 +1873,6 @@
 imputil          Privides a way of writing customised import hooks.
 inspect          Tool for probing live Python objects.
 keyword          List of Python keywords.
-knee             A Python re-implementation of hierarchical module import.
 linecache        Cache lines from files.
 linuxaudiodev    Lunix /dev/audio support.
 locale           Support for number formatting using the current locale
@@ -1900,8 +1885,6 @@
 mhlib            MH (mailbox) interface.
 mimetools        Various tools used by MIME-reading or MIME-writing programs.
 mimetypes        Guess the MIME type of a file.
-MimeWriter       Generic MIME writer.
-mimify           Mimification and unmimification of mail messages.
 mmap             Interface to memory-mapped files - they behave like mutable
                  strings./font>
 multifile        Class to make multi-file messages easier to handle.
@@ -1920,7 +1903,6 @@
 pipes            Conversion pipeline templates.
 pkgunil          Utilities for working with Python packages.
 poplib           A POP3 client class. Based on the J. Myers POP3 draft.
-posixfile        Extended (posix) file operations.
 posixpath        Common operations on POSIX pathnames.
 pprint           Support to pretty-print lists, tuples, & dictionaries
                  recursively.
@@ -1933,7 +1915,6 @@
 pyclbr           Parse a Python file and retrieve classes and methods.
 Queue            A multi-producer, multi-consumer queue.
 quopri           Conversions to/from quoted-printable transport encoding.
-rand             Don't use unless you want compatibility with C's rand().
 random           Random variable generators
 re               Regular Expressions.
 repr             Redo repr() but with limits on most sizes.
@@ -1942,7 +1923,6 @@
 rlcompleter      Word completion for GNU readline 2.0.
 robotparser      Parse robots.txt files, useful for web spiders.
 sched            A generally useful event scheduler class.
-sets             Module for a set datatype.
 sgmllib          A parser for SGML.
 shelve           Manage shelves of pickled objects.
 shlex            Lexical analyzer class for simple shell-like syntaxes.
@@ -1954,7 +1934,6 @@
 sndhdr           Several routines that help recognizing sound.
 SocketServer     Generic socket server classes.
 stat             Constants and functions for interpreting stat/lstat struct.
-statcache        Maintain a cache of file stats.
 statvfs          Constants for interpreting statvfs struct as returned by
                  os.statvfs()and os.fstatvfs() (if they exist).
 string           A collection of string operations.
