diff --git a/Mac/ReadMe b/Mac/ReadMe
index 0275bb1..918be60 100644
--- a/Mac/ReadMe
+++ b/Mac/ReadMe
@@ -1,4 +1,4 @@
-How to install Python 1.6a1 on your Macintosh
+How to install Python 1.6a2 on your Macintosh
 ---------------------------------------------
 
 If this is your first encounter with Python: you definitely need the
@@ -19,39 +19,48 @@
 
 Aside from the general Python 1.6 features like unicode support the
 main new features of this MacPython release is support for multithreading.
-This has not been tested very well. 
+This has had some preliminary testing, but please report any success or failure
+on the mailing list.
 
 This installer installs MacPython for PowerPC only, whether a 68K distribution
-of Python 1.6 will happen is not certain at the moment. There is no Tkinter
-in this installer.
+of Python 1.6 will happen is not certain at the moment.
 
-All references to 68k, cfm68k and Tkinter in this document and in the
-installer should be ignored: it really isn't there.
+Changes since 1.6a1
+-------------------
+
+- All core-Python changes, plus a few from after 1.6a2, approximately as the
+  Python CVS tree was at May 5.
+- The threading performance bug has been fixed.
+- Tkinter is included again (yeah!), but only lightly tested. Please report
+  findings to the mailing list.
+- macfsn.py is auto-imported on startup (unless disabled with a new option).
+  This retrofits macfs.StandardGetFile() and friends to use Navigation Services
+  in stead of the old Standard File dialogs.
+- I think all installer problems have been fixed. Please report if not so.
 
 What to install
 ---------------
 
-There are three flavors of Python: PowerPC, cfm68k and Classic 68k
-(the FAT flavor is just a combination of the first two, which is handy
-if you want to install Python on a fileserver or so). 68K-mac owners
-should definitely use the cfm68k version if possible, since it enables
-the use of applets and dynamically loaded modules and usually has a
-smaller memory footprint. If you have an older system than MacOS 8 it
-does however need the CFM68K Runtime Enabler which is available from
-Apple (available for free from
-<http://support.info.apple.com/ftp/swhome.html>, included since MacOS
-7.6.1 and builtin to the system since MacOS 8). If your machine is
-pre-68020 you cannot use cfm68k and you can install the classic 68k
-Python.
+This installer is PPC only: too many new MacOS features are not available on 68K,
+and doing workarounds, even just #ifdeffing in the code, is too much work for
+me right now. If someone wants to revive 68K-MacPython: please do so. The project
+files still contain the 68K targets (they're simply skipped by the build process)
+so all that is needed is CodeWarrior, a source distribution and commitment.
+
+The optional parts in this distribution are
+- TK+PIL: Tkinter and support modules, plus Imaging, the Python image manipulation 
+  package (allows you to read, write and display images and do lots of operations on them).
+- img: another imaging package. Has more file format support and is faster
+  than imaging, but has only limited operations on images. There is a bridge
+  between the packages.
+- Numeric: the LLNL Numeric Python extension. All sorts of nifty operations
+  on matrices and such.
+- Developers kit: all header files and some tools and sample projects to get you started on
+  writing Python extensions if you have CodeWarrior.
+All these except the DevKit are installed with Easy Install.
 
 After the installer finishes it automatically launches the
-ConfigurePython applet, to finish configuration of your Python
-installation (except for classic 68K installations, where no extra
-configuration is needed).
-
-If you have a pre-system 7 macintosh: sorry, this release will not work
-on your system. Too many sys7 features are used to make a sys6 python
-easy to create.
+ConfigurePython applet, to finish configuration of your Python.
 
 If you don't have enough memory: the sizes choosen are somewhat
 arbitrary. Try lowering the application sizes in the finder "get info"
@@ -59,12 +68,6 @@
 modules (Tkinter comes to mind) need a lot of memory, so it may also be
 necessary to increase the application size.
 
-A final note to CFM68K (and possibly PPC) users: the Code Fragment
-Manager can (incorrectly) produce "library not found" and other strange
-error messages when it really means that there is not enough room in the
-system heap. Decreasing (yes, *de*creasing) the size of the interpreter
-and/or enabling virtual memory may solve these problems.
-
 After installing
 ----------------
 
@@ -74,52 +77,38 @@
 are low on diskspace.
 
 Next, it is probably a good idea to run the automatic tests. Start
-Python and "import test.autotest". This should not print any
-errors. It will, however, print some messages about optional features
+Python and "import test.autotest". This should not print only one error, about some
+AM/PM format not supported in strftime. 
+It will, however, print some messages about optional features
 not supported. Also, if you didn't run compileall before autotesting
 you may run out of memory the first time you run the
 tests. test_socket may also fail if you have no internet
 connection. Please also read the Relnotes file for other minor
 problems with this distribution.
 
-PPC and CFM68K users have a couple of applets in the main folder they
-may want to try, (68K users can use the corresponding scripts from the
-"scripts" folder):
-
-- EditPythonPrefs allows you to edit the preferences file, to change the
-python home folder or modify the initial sys.path setting. The default
-settings are somewhat arbitrary, you can remove tkinter if you don't use
-it and possibly add Extensions:img:Lib. - mkapplet creates a python
-applet, a tiny application written in python. Drop a python source on it
-and out comes the application. More information can be found in the
-"Mac:Demo" folder.
-
-If you have a slow machine you may want to disable automatic site.py import
-since site.py does not do too much on the mac (unless you make it do
-something), and it can take a few seconds.
-
-PPC and CFM68K users will see one more file in the python folder:
-PythonApplet. This is the template for building applets, leave it alone.
-The applet is "fat", containing both PPC and CFM68K code. Hence, applets
-built with it can be transported to machines with the other
-architecture.
+Using Python is most easily done from the IDE, which has a builtin editor,
+debugger and other goodies. The alternative is to use PythonInterpreter,
+which is the lowlevel interpreter with a console-window only (similar to Unix
+Python).
 
 Uninstalling
 ------------
 
 Two items are installed in the system folder: the interpreter shared
-library "PythonCore 1.5.2b1" lives in the Extensions folder and the
-"Python 1.5.2b1 Preferences" file in the Preferences folder. All the rest
+library "PythonCore 1.6a2" lives in the Extensions folder and the
+"Python 1.6a2 Preferences" file in the Preferences folder. All the rest
 of Python lives in the folder you installed in.
 
 Things to see
 -------------
 
-There are some readme files in the "Read me files" folder that may
+Start off at Mac:Demo:index.html. Read at least the first few sections.
+
+There are also some readme files in the "Read me files" folder that may
 contain useful information. There is also a first stab at documentation
 (plus examples) in the Mac:Demo folder. The toplevel Demo folder has
-machine-independent demos. See the file Readme-mac for mac-specific
-notes. The Mac:Lib:test folder also has some programs that show simple
+machine-independent demos. 
+The Mac:Lib:test folder also has some programs that show simple
 capabilities of various modules.
 
 The "scripts" folder has some sample scripts. Some are useful, some are
@@ -133,8 +122,7 @@
 ftp://ftp.cwi.nl/pub/jack/python/img (or somewhere around there).
 
 Finally there is a Mac:Contrib folder which contains some contributed
-software, including a Real Programming Environment and some AppleScript
-related modules.
+software.
 
 Upgrading from older Python releases
 ------------------------------------
@@ -145,15 +133,15 @@
 whether to upgrade. The bad news is that your old preference settings
 are lost and you have to set them again.
 
-After you are satisfied that 1.5.2b1 works as expected you can trash
+After you are satisfied that 1.6a2 works as expected you can trash
 anything in the system folder that has "python" in the name and not
-"1.5.2b1".
+"1.6a2".
 
 The installer
 -------------
 
-The installer for this product was created using Installer VISE Lite
-from MindVision Software. For more information on Installer VISE Lite,
+The installer for this product was created using Installer VISE
+from MindVision Software. For more information on Installer VISE,
 contact:
 MindVision Software
 7201 North 7th Street
@@ -163,7 +151,8 @@
 Internet: mindvision@mindvision.com
 http://www.mindvision.com
 
-Just van Rossum <just@letterror.nl> created the installer.
+Just van Rossum <just@letterror.nl> created the initial version of the
+installer (with Installer Vise Lite), and Jack worked from there.
 
 Thanks!
 -------
@@ -187,9 +176,9 @@
 anyway:-).
 
 Jack Jansen
-Centrum voor Wiskunde en Informatica
-Kruislaan 413
-1098 SJ Amsterdam
+Oratrix Development BV
+Valeriusplein 30
+Amsterdam
 the Netherlands
 
 <jack@cwi.nl>, http://www.cwi.nl/~jack
diff --git a/Mac/Relnotes b/Mac/Relnotes
index bb4d711..c83e9dc 100644
--- a/Mac/Relnotes
+++ b/Mac/Relnotes
@@ -1,133 +1,13 @@
-	Release notes for MacPython 1.5.1
-	---------------------------------
-	
-Open Issues and bugs:
+Changes since 1.6a1
+-------------------
 
-- Packages ("dotted import") appears to have problems for the cfm68k
-  version of MacPython. Please report anything of interest you find as
-  soon as possible, preferrably to pythonmac-sig@python.org. I no longer
-  have access to a reasonable 68K machine, so it may well be that this
-  means the demise of cfm68k Python is near.
-- Printing a NumPy "array([1.2])" may cause a crash in
-  cfm68k-Python. Same comments as above.
+- All core-Python changes, plus a few from after 1.6a2, approximately as the
+  Python CVS tree was at May 5.
+- The threading performance bug has been fixed.
+- Tkinter is included again (yeah!), but only lightly tested. Please report
+  findings to the mailing list.
+- macfsn.py is auto-imported on startup (unless disabled with a new option).
+  This retrofits macfs.StandardGetFile() and friends to use Navigation Services
+  in stead of the old Standard File dialogs.
+- I think all installer problems have been fixed. Please report if not so.
 
-Changes since the previous version:
-
-Here are the mac-specific changes since MacPython 1.4, with
-end-user-visible changes near the top and API changes and other things
-that are developer-only more to the bottom. Changes marked with a [*]
-are new changes since 1.5b3 (there has never been a MacPython 1.5
-final). And, of course, all Guido's 1.5.1 changes are
-incorporated.
-
-- Imported modules are now case-checked: the case of the filename
-  should match the name under which you import it [*]
-- There is now some minimal documentation on building true standalone
-  applications in Python, see building.html [*]
-- Python's private resources now use numbers from 228 up, because of
-  conflicts with Tk. This may affect you if you include private
-  resources in applets. [*]
-- Audio_mac spike bug fixed. [*]
-- FrameWork menu cleanup fixed. [*]
-- More MacOS errors now have a (somewhat) symbolic description. [*]
-- mactty module added to allow basic access to a serial line. [*]
-- toolbox modules have been regenerated, occasionally giving access to 
-  new functionality. They are now based upon Universal Headers version 
-  3.1 [*]
-- Waste module now uses Waste 1.3 [*]
-- Waste module now exports WE{Get,Set}TabSize [*]
-- Ordinal support in aetypes added (by Bill Bedford) [*]
-- ColorPicker module added (by Just van Rossum). It isn't documented,
-  but the docstring should be good enough. [*]
-- Printing module added (by Just van Rossum). It isn't documented and
-  it isn't easy to understand, but with Inside Mac beside you it might 
-  be useable. There's a test script in Mac:Lib:test. [*]
-- Sndihooks module added to give access to sound-input. Only lightly
-  tested and not documented yet. [*]
-- fstat() added to mac module. [*]
-- double dispose in MacOS.splash() fixed. [*]
-- Qt module now supports getting/setting movie times [*]
-- BuildApplet now also accepts old applets as input, which are updated 
-  to the current Python version [*]
-- Moved Mac:Lib:toolbox and scripting to lib-toolbox and
-  lib-scripting, analogous to Guido's changes. Initial sys.path settings
-  reflect this change
-- Added cPickle and cStringIO modules
-- Balloon help in set-preferences dialog and EditPythonPrefs
-- An interface to the Help Maganer has been added
-- New modules "preferences" and "pythonprefs" which allow access to
-  Python preferences and implements a general preference-handling
-  framework. New EditPythonPrefs uses this.
-- Applescript suite modules are now in a separate Mac:Lib:scripting
-  folder
-- Most modules now export their type objects
-- MacOS.SysBeep() and MacOS.GetTicks() added
-- sys.prefix and sys.exec_prefix are now set correctly
-- Installation is now through an installer 
-- mkapplet and MkPluginAliases have been renamed to BuildApplet and
-  ConfigurePython 
-- Applescript classes and properties are now exported by suites. Very
-  sketchy documentation added to applescript.html 
-- Tkinter now uses tcl/tk 8.0 
-- imports should be faster due to caching path information 
-- Generated suites now live in Mac:Lib:scripting 
-- Added zlib module 
-- Tkinter setfilehandler() did not work for sockets, fixed 
-- "Delay console window" option didn't work, fixed. Also check out the
-  quietconsole.py module 
-- Menu bar is restored (if needed) when keeping console open after
-  exit 
-- Influencing command-. and event processing (formerly MacOS.SetYield
-  and MacOS.SetScheduleTimes) has been changed, see the manual 
-- FrameWork (or your own windowing code) can use asynchronous
-  callbacks to keep user interface responsive during long computations 
-- Module to interface to Internet Config added
-- Module calldll added that allows calling of arbitrary C routines
-  from MacOS toolboxes
-- gdbm module added
-- ctb error handling fixed, and some memory leaks plugged
-- Various of the documentation files in Mac:Demo have been updated
-- MacOS.string_id_to_buffer is a new hack: the number you have to
-  add to the id() of a string object to get the (data) memory address
-- MacOS.splash() double-free fixed
-- macfs.FSSpec.as_pathname() was incorrect for disk toplevel folders
-- QT.NewMovieFromFile has an extra parameter and an extra return value
-- EasyDialogs.ProgressBar has changed both in layout and interface
-- FrameWork.Application has a new cleanup() method which asks all windows
-  to close themselves.
-- Loading of PYC resources from the application greatly speeded up,
-  especially for CDROM based applications
-- interrupt check/eventloop only entered 10 times per second, giving
-  big speedup
-- Allow any object (file, folder, disk) to be dropped on an applet
-- Twit resource number conflict with debuggee fixed
-- sys.path preference can now be longer than 255 chars
-- cfmfile module allows parsing and merging of CFRG resources
-- PythonFAT and PythonApplet are now fat (PPC/CFM68K) applications, so
-  applets can be moved between architectures.
-- Twit resource number conflict with debuggee fixed
-- mkapplet now uses a progress bar in stead of print statements
-- unshar made a bit more mac-friendly (input output dialogs)
-- img: added png, xbm, bmp support
-- img: jpeg now uses IJG v6 library
-- img: import of imagefile support modules delayed until needed
-- img: better error handling for truncated images and such
-- img: imgop.unpack() can unpack formats with multiple pixels per byte
-
-- build numbers work and are maintained in macbuildno.h by fullbuild.py
-- We now use CW Pro 1, with multitarget projects and such goodies 
-- fixed xx plugin project for cfm68k 
-- All files updated to new Py_ naming convention
-- Toolbox modules regenerated from new Universal Headers
-- nfullpath() merged into PyMac_GetFullPath()
-- Added support for Metrowerks profiler
-- Standard MW/MSL runtime libraries used in stead of homegrown version
-- Allow any object (file, folder, disk) to be dropped on an applet
-- Malloc now returns cache-line-aligned memory on PPC, which speeds
-  things up, especially on a 604. Dictionaries put this to good use.
-- statically linked pythons won't inadvertantly load .slb modules
-- Removed dependencies on PLStringFuncs and/or StdCLib
-- Project "segment" structure changed to more-or-less follow folder
-  structure
-- fullbuild redesigned
-- Added PyMac_Initialize() call, for use by embedding programs.
