diff --git a/Mac/ReadMeOrSuffer b/Mac/ReadMeOrSuffer
new file mode 100644
index 0000000..d6e7a35
--- /dev/null
+++ b/Mac/ReadMeOrSuffer
@@ -0,0 +1,128 @@
+How to install Python 1.3beta3 on your Macintosh
+------------------------------------------------
+
+Even if you don't usually read readme files: please read at least the
+first sections of this file, failure to do so will probably result in
+an unuseable python system. If this warning is too late and you already
+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.
+
+Next: this is a beta distribution, so (a) things may be broken and (b)
+the instructions are probably far from complete (or correct:-). I'm counting
+on you to send me feedback on any problems you encounter or suggestions
+you have!
+
+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.com and ftp.python.com.
+
+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.
+Alternatively: get the sources, put in the necessary gestalt() and
+compatability calls yourself and send me the results.
+
+If you don't have enough memory: the sizes choosen are somewhat arbitrary.
+Try lowering them and seeing whether the resulting python is still usable.
+
+PowerPC Macintosh instructions
+------------------------------
+
+1. You will have to create some aliases in the 'PlugIns' folder. There is
+   an AppleScript there that will create them for you. If you don't have
+   AppleScript you will have to create the aliases by hand, read the script
+   to see what to do. Alternatively, if you have still have an older, but
+   fairly recent version of python already on your system: try the
+   MkPluginAliases script from the Scripts folder.
+   
+   [If someone nows of a way to create relative aliases or of a simple way
+   to create aliases on a target system without knowing pathnames in advance:
+   please let me know]
+   
+2. At this point you should remove older versions of "PythonCore" and
+   "Python Preferences" from your system folder.
+   
+3. Next, you should run PythonPPC. This will create an initial preferences
+   file (after asking you if that's ok with you).
+   
+4. To make sure any applets you create can find the common interpreter code
+   you should make an alias to PythonCore and drop it in your Extensions
+   folder (I think the name should still be PythonCore). Alternatively, drop
+   the file itself on the System folder and it will find its own way.
+   
+5. You're all set now. Continue with the common instructions.
+
+68K Macintosh instructions
+--------------------------
+
+1. Remove old "Python Preferences" file from the Preferences folder, if you
+   have one (the file, that is, not the folder:-).
+   
+2. Run Python68K. This will create an initial preferences file (after
+   asking you if that's ok with you).
+   
+3. Continue with the next section.
+
+Common instructions
+-------------------
+
+You should now have a functioning python. It is probably a good idea to run
+"testall.py" from :Lib:test at this point, this should not give any errors.
+Next, try "compileall.py" from :Lib to create all .pyc files (but this isn't
+really important).
+
+PPC 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.
+- RunLibScript allows you to run any script as __main__ after setting arguments,
+  changing stdin/stdout/workdir, etc.
+- 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.
+  
+PPC users will see one more files in the python folder: PythonApplet. This is
+the template for building applets, leave it alone.
+
+Things to see
+-------------
+
+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.
+
+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).
+
+Feedback
+--------
+
+Send bug reports, suggestions, contributions and fanmail to <jack@cwi.nl>.
+Be warned however that I'm pretty busy at the moment, so I may not always
+respond immedeately.
+Alternatively, you can try sending to comp.lang.python or python-list@cwi.nl,
+but since I read the newsgroup, not the mailinglist, I may miss it there
+(but other people may know quite a bit more than me anyway:-).
+
+				Jack Jansen
+				Centrum voor Wiskunde en Informatica
+				Kruislaan 413
+				1098 SJ  Amsterdam
+				the Netherlands
+				
+				<jack@cwi.nl>, http://www.cwi.nl/~jack
