diff --git a/Mac/ReadMeOrSuffer b/Mac/ReadMeOrSuffer
index ac390d0..7339fbf 100644
--- a/Mac/ReadMeOrSuffer
+++ b/Mac/ReadMeOrSuffer
@@ -1,4 +1,4 @@
-How to install Python 1.3 on your Macintosh
+How to install Python 1.3.3 on your Macintosh
 ------------------------------------------------
 
 Even if you don't usually read readme files: please read at least the
@@ -7,12 +7,18 @@
 have an non-functional python: it is best to remove all traces and start
 with a fresh distribution. Especially don't forget to remove the
 "python preferences" file from the Preferences folder, and possibly
-"PythonCore" from the Extensions folder.
+"PythonCore" from the Extensions folder. Before you mail me for help *please*
+try the steps above (cleaning up and re-installing): it should fix most
+common mistakes.
 
-If this is your first encounter with python: you definitely need the common
+If this is your first encounter with Python: you definitely need the common
 user documentation (common to all platforms). You can find this (in various
 forms) on www.python.org and ftp.python.org.
 
+Mac-specific documentation is included in this distribution in folder Mac:Demo.
+The documentation is sparse, but it will have to serve for now. The documentation
+is in HTML format, start with index.html.
+
 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. If you really want one: tell me, maybe I can be convinced.
@@ -36,9 +42,8 @@
 2. Run the MkPluginAliases applet. This will first ask you whether it should
    create an initial preferences file. Let it do so. Next, it will create a
    number of aliases in the PlugIns folder. If this fails in mysterious ways
-   try using the applescript in the PlugIns folder to create the aliases.
-   If that also fails: examine the script and create the aliases by hand
-   (and tell me what you did to make either of these two fail:-).
+   examine the script (in Mac:scripts:MkPluginAliases.py) and create the aliases
+   by hand (and tell me what you did to make the script fail:-).
 
 3. To make sure any applets you create can find the common interpreter code
    you should move PythonCore to the Extensions folder (drop it on the
@@ -77,12 +82,13 @@
 - 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 "liberal", you can remove stdwin and tkinter if
-  you don't use them, and Mac:Lib:... if you don't have a source distribution.
+  you don't use them and maybe others.
 - RunLibScript allows you to run any script as __main__ after setting arguments,
-  changing stdin/stdout/workdir, etc.
+  changing stdin/stdout/workdir, etc. Most of this functionality can also be
+  obtained nowadays by option-dragging a script to the interpreter.
 - For PPC only, 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 "Read me files" folder.
+  information can be found in the "Mac:Demo" folder.
   
 PPC users will see one more files in the python folder: PythonApplet. This is
 the template for building applets, leave it alone.
@@ -91,20 +97,16 @@
 -------------
 
 There are some readme files in the "Read me files" folder that may contain
-useful information. Especially the Relnotes-1.3 file contains some interesting
-tidbits.
+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 capabilities of various modules.
 
 The "scripts" folder has some sample scripts. Some are useful, some are just
 interesting to look at to see how various things work. The MkDistr, mkapplet
 and fullbuild scripts (plus the ones mentioned above) may help you to understand
 how to use AppleEvents and various other toolboxes from python.
 
-The Tools folder has all the (automatically generated) interfaces to toolboxes
-available, and some simple test programs. See the scripts mentioned above for how
-to use them. NOTE: the organization of the toolbox stuff is likely to change,
-maybe even before the real 1.3 distribution. Until that time you will have to
-use addpack or imp to import these files in your program.
-
 The 'img' group of modules, which handles I/O of many different image formats
 (not pict yet, sigh:-) is included, but without documentation. You can find
 docs at ftp://ftp.cwi.nl/pub/jack/python/img (or somewhere around there).
diff --git a/Mac/Relnotes-1.3.3 b/Mac/Relnotes-1.3.3
new file mode 100644
index 0000000..896dc57
--- /dev/null
+++ b/Mac/Relnotes-1.3.3
@@ -0,0 +1,125 @@
+	Changes between 1.3.3 and 1.3.2
+	--------------------------------
+
+A major change since 1.3.2 is in the organization of the files: The
+Mac folder has mac-specific demo programs, attempts at documentation and
+more. Browse the HTML files in Mac:Demo for more info.
+
+Also, Toolbox:bgen is not needed anymore for normal use: the relevant
+python modules have been moved to Mac:Lib:toolbox.
+
+Other changes:
+- Uses final Tk 4.1 and Tcl 7.5 distributions.
+- Override preferences (stored in the interpreter/applet application)
+  allow overriding of system-wide preferences. Explained in
+  "using.html".
+- New functionality in FrameWork.py:
+  - ScrolledWindow class
+  - enable(), settext(), setitem(), setmark(), seticon(),
+    checkmenu() and delete() methods for menu entries.
+  - event parameter added to idle() method
+  - windowbounds() function helps programmer with staggering windows.
+  - Erase only visRgn on an update event.
+- TextEdit interface module added
+- Waste interface module added
+- Demos for waste, including skeleton for html editor
+- Scrap manager interface added
+- Ctl.FindControl() could return reference to deleted object. Fixed.
+- GrafPorts have an _id attribute (address of grafport) allowing them
+  to be compared (since a new python object is created each time).
+- Standard File folder no longer changed on chdir() (this was
+  introduced in 1.3.2).
+- sys.argv can now be set if you option-drag or option-click a python
+  source.
+- Various dialogs now have sensible defaults.
+- binhextree is now a bit more intelligent about when to binhex.
+- gensuitemodule fixed to hand '****' type arguments.
+
+	Changes between 1.3.2 and 1.3.1
+	-------------------------------
+
+The main reason for the 1.3.2 distribution is the availability of Tk
+for the mac. The Tk port and its integration in Python is definitely
+not bug-free, hence this distribution should be treated as beta
+software at best.
+
+Another major change in this release is that the Python I/O system is
+now based on the GUSI library. This is an I/O library that attempts to
+mimic a Posix I/O system. Hence, modules like socket and select are
+now available in MacPython. If you build dynamically loaded modules
+and you use any unix-like feature such as stat() calls you should
+compile using the GUSI include files.
+
+A third major change is that the MacOS creator code has been changed
+from 'PYTH' to 'Pyth', due to a conflict. This means that you will
+have to change the creator of all your old python programs. The
+distribution contains a script "FixCreator.py" that does this
+recursively for a whole folder.
+
+Here are all the changes since 1.3.1, in no particular order:
+- complex number support added
+- cmath module added
+- startup options ("option-drag" dialog) can be retrieved from the
+  preferences file. EditPythonPrefs hasn't been updated yet, though.
+- Creator changed from PYTH to Pyth
+- {mac,os}.unlink is now also called {mac,os}.remove
+- {mac,os}.mkdir second arg optional
+- dup and fdopen calls added
+- select module added
+- socket module added
+- open(file, '*r') for opening resource forks has been removed. It is
+  replaced by MacOS.openrf(file, 'r'), which returns a simple
+  file-like object to read (or write) resource forks.
+- Added AppleEvent URL suite
+- Added AppleEvent netscape suite
+- QuickDraw globals are now all accessible, as Qd.qd.xxxx
+
+
+	Mac-specific changes between 1.3 and 1.3.1
+	--------------------------------------
+
+Aside from the changes mentioned here there have also been some
+changes in the core python, but these are not documented here.
+However, these changes are mainly bugfixes, so there shouldn't be any
+incompatabilities.
+
+- imgsgi and imgpbm modules added
+- Various hooks installed to allow integration with MacTk (currently
+  disabled)
+- Added support for MacOS Fixed type in toolbox arguments (represented
+  as floats in python)
+- Added option to keep output window open on normal termination
+- Decreased minimum heapsize to run interpreter
+- Added progress-bar to EasyDialogs
+- Fixed socket.getportname()
+- Renamed MACTCP.py to MACTCPconst.py
+
+- Many fixes to FrameWork.py:
+  - Added window.SetPort() method
+  - Added optional bounds and resid parameters to Window.open()
+  - Fixed apple-menu DA handling
+  - Fixed activate-event handling
+  - Added default Application.makeusermenus() (File:Quit only)
+  - Fixed bug with keyboard input handling
+  - added idle() method, called from event loop if there are no events
+    pending
+
+Toolbox modules:
+- component manager module added
+- quicktime module added
+- font manager module added
+- Added color window support
+- Added support to obtain pixmap from a window
+- Added BitMap type
+- Added GrafPort type
+- Added support for PenState, Patterns, FontInfo, RGB colors,
+- Fixed GetPen and SetPt arguments
+- Added read access to members of {C}GrafPort objects
+- Added support for cursors
+- Provide access to some QuickDraw globals
+- Fixed InsetRect, OffsetRect, MapRect
+- Added support for various handles such as PatHandle, CursHandle
+- Added functions to access members of Window objects
+
+
+
