diff --git a/README b/README
index 12f3e52..be2915a 100644
--- a/README
+++ b/README
@@ -4,16 +4,81 @@
 What's new in this release?
 ---------------------------
 
-Too much has changed to list it all here.  There's a loooong list of
-changes since release 1.4 in the file Misc/NEWS.  If you were an alpha
-tester, the list of changes since 1.5a4 is presented at the end of
-that file.
+There's a loooong list of changes since release 1.4 in the file
+Misc/NEWS.  Some highlights:
 
-Most relevant changes since 1.5a4 (of course all known bugs have been
-fixed, leaks plugged, and documentation has been added):
+  - It's much faster (almost twice for the Lib/test/pystone.py
+  benchmark.)
 
-  - Package directories now *require* the presence of __init__.py.
-  Packages can now contain shared libraries.
+  - There is now an assert statement: ``assert <condition>'' or
+  ``assert <condition>, <errormessage>''.  It raises AssertionError if
+  the condition evaluates to false.  The default error message is
+  empty; the source text of the assertion statement is printed as part
+  of the traceback.
+
+  - There is now built-in support for importing hierarchical module
+  names (e.g. "import spam.ham.eggs"); ni is declared obsolete.  Note
+  that the built-in package support is somewhat simpler (no __ and
+  __domain__) and differs in one crucial aspect: __init__.py is
+  required, and loaded in the package's namespace instead of as a
+  submodule.  For more information, see
+  http://grail.cnri.reston.va.us/python/essays/packages.html.
+
+  - The new "re" module (Perl style regular expressions) is here.  It
+  is based on Philip Hazel's pcre code; the Python interfaces were put
+  together by Andrew Kuchling.  The regex module is declared obsolete.
+
+  - In support of the re module, a new form of string literals is
+  introduced, "raw strings": e.g. r"\n" is equal to "\\n".
+
+  - All standard exceptions and most exceptions defined in standard
+  extension modules are now classes.  Use python -X to revert back to
+  string exceptions.  See
+    http://grail.cnri.reston.va.us/python/essays/stdexceptions.html
+  for more info.
+
+  - Comparisons can now raise exceptions (previously, exceptions
+  occuring during comparisons were swept under the rug).
+
+  - New dictionary methods: .clear(), .copy(), .update(), .get().  The
+  first two are obvious; d1.update(d2) is equivalent to the for loop
+  ``for k in d2.keys(): d1[k] = d2[k]''; and d.get(k) returns d[k] if
+  it exists and None (or the optional second argument) if not.
+
+  - There is a new regression test harness, which tests many more
+  modules.  (To run the tests, do "import tes.autotest".)
+
+  - The interpreter is much smarter about the initial value for
+  sys.path; you can control it easier using $PYTHONHOME (see the usage
+  message, e.g. try ``python -h'').  In most situations, the
+  interpreter can be installed at an arbitrary location without having
+  to recompile.
+
+  - The build process now builds a single library (libpython1.5.a)
+  which contains everything except for the main() entry point.  This
+  makes life much easier for applications that embed Python.
+
+  - There is much better support for embedding, including threads,
+  multiple interpreters(!), uninitialization, and access to the global
+  interpreter lock.
+
+  - There is a -O option that removes SET_LINENO instructions, assert
+  statements and code prefixed with ``if __debug__: ...''.  (It still
+  only makes a few percent difference, so don't get all worked up
+  about this.)
+
+  - The Grand Renaming is completed: all linker-visible symbols
+  defined by Python now have a "Py" or "_Py" prefix, and the same is
+  true for most macros and typedefs.
+
+If you were an alpha tester, here are the most relevant changes since
+1.5a4 (of course all known bugs have been fixed, leaks plugged, and
+some documentation has been added).  The full list of changes since
+1.5a4 is presented at the end of the Misc/NEWS file.
+
+  - Package directories now *require* the presence of __init__.py (or
+  .pyc/.pyo as applicable).  Packages can now contain shared
+  library modules.
 
   - New module 'fileinput' to iterate over the lines of a list of files.
 
@@ -32,65 +97,6 @@
 
   - OS/2 support.
 
-Other important changes, if this is the first release you see since
-1.4:
-
-  - It's much faster (almost twice for the Lib/test/pystone.py
-  benchmark.)
-
-  - There's an assert statement: assert <condition> or
-  assert <condition>, <errormessage>.  It raises AssertionError if the
-  condition evaluates to false.
-
-  - There is now built-in support for importing hierarchical module
-  names (e.g. "import spam.ham.eggs"); ni is declared obsolete.  Note
-  that the built-in package support is somewhat simpler (no __ and
-  __domain__) and differs in one crucial aspect: __init__.py is loaded
-  in the package's namespace instead of as a submodule.  See
-    http://grail.cnri.reston.va.us/python/essays/packages.html
-  for more info.
-
-  - The new "re" module (Perl style regular expressions) is here.  It
-  is based on Philip Hazel's pcre code; the Python interfaces were put
-  together by Andrew Kuchling.  The regex module is declared obsolete.
-
-  - In support of the re module, a new form of string literals is
-  introduced, "raw strings": e.g. r"\n" is equal to "\\n".
-
-  - All standard exceptions and most exceptions defined in standard
-  extension modules are now classes.  Use python -X to revert back to
-  string exceptions.  See
-    http://grail.cnri.reston.va.us/python/essays/stdexceptions.html
-  for more info.
-
-  - Comparisons can now raise exceptions.
-
-  - New dictionary methods: .clear(), .update(), .copy(), .get().
-
-  - New regression test harness tests more.
-
-  - It's much smarter about the initial value for sys.path; you can
-  control it easier using $PYTHONHOME (see the usage message, e.g. try
-  ``python -h'').  In most situations, the interpreter can be
-  installed at an arbitrary location without having to recompile.
-
-  - The build process now builds a single library (libpython1.5.a)
-  which contains everything except for the main() entry point.  This
-  makes life much easier for applications that embed Python.
-
-  - Much better support for embedding, including threads, multiple
-  interpreters(!), uninitialization, and access to the global
-  interpreter lock.
-
-  - There's a -O option that removes SET_LINENO instructions, assert
-  statements and code prefixed with ``if __debug__: ...''.  (It still
-  only makes a few percent difference, so don't get all worked up
-  about this.)
-
-  - The Grand Renaming is completed: all linker-visible symbols
-  defined by Python now have a "Py" or "_Py" prefix, and the same is
-  true for most macros and typedefs.
-
 
 If you don't read instructions
 ------------------------------
