diff --git a/Doc/libmac.tex b/Doc/libmac.tex
index 344d300..270620a 100644
--- a/Doc/libmac.tex
+++ b/Doc/libmac.tex
@@ -58,7 +58,14 @@
 \code{sync},
 \code{unlink},
 \code{write},
-as well as the exception \code{error}.
+as well as the exception \code{error}. Note that the times returned by
+\code{stat} are floating-point values, like all time values in
+MacPython.
+
+One additional function is available: \code{xstat}. This function
+returns the same information as \code{stat}, but with three extra
+values appended: the size of the resource fork of the file and its
+4-char creator and type.
 
 \section{Standard Module \sectcode{macpath}}
 
diff --git a/Doc/libmacfs.tex b/Doc/libmacfs.tex
index f4a7034..be566cb 100644
--- a/Doc/libmacfs.tex
+++ b/Doc/libmacfs.tex
@@ -89,6 +89,11 @@
 standard module \var{MACFS}.
 \end{funcdesc}
 
+\begin{funcdesc}{FindApplication}{creator}
+Locate the application with 4-char creator code \var{creator}. The
+function returns an FSSpec object pointing to the application.
+\end{funcdesc}
+
 \subsection{FSSpec objects}
 
 \renewcommand{\indexsubitem}{(FSSpec object attribute)}
@@ -134,6 +139,17 @@
 \var{finfo} object.
 \end{funcdesc}
 
+\begin{funcdesc}{GetDates}{}
+Return a tuple with three floating point values representing the
+creation date, modification date and backup date of the file.
+\end{funcdesc}
+
+\begin{funcdesc}{SetDates}{crdate\, moddate\, backupdate}
+Set the creation, modification and backup date of the file. The values
+are in the standard floating point format used for times throughout
+Python.
+\end{funcdesc}
+
 \subsection{alias objects}
 
 \renewcommand{\indexsubitem}{(alias object attribute)}
diff --git a/Doc/libmacos.tex b/Doc/libmacos.tex
index e48a0c3..2b7628f 100644
--- a/Doc/libmacos.tex
+++ b/Doc/libmacos.tex
@@ -15,6 +15,8 @@
 functions in this module or from other mac-specific modules like the
 toolbox interfaces. The arguments are the integer error code (the
 \var{OSErr} value) and a textual description of the error code.
+Symbolic names for all known error codes are defined in the standard
+module \var{macerrors}.
 \end{excdesc}
 
 \begin{funcdesc}{SetHighLevelEventHandler}{handler}
@@ -42,8 +44,8 @@
 the background values will be set the the same as the foreground
 values. The function returns nothing.
 
-The default values, which are based on nothing at all, are 12, 6, 1
-and 12 respectively.
+The default values, which are based on minimal empirical testing, are 12, 1, 6
+and 2 respectively.
 \end{funcdesc}
 
 \begin{funcdesc}{EnableAppswitch}{onoff}
@@ -77,11 +79,22 @@
 This function will put a splash window
 on-screen, with the contents of the DLOG resource specified by
 \code{resid}. Calling with a zero argument will remove the splash
-screen. This function is useful if you want to post a splash screen
+screen. This function is useful if you want an applet to post a splash screen
 early in initialization without first having to load numerous
 extension modules.
 \end{funcdesc}
 
+\begin{funcdesc}{DebugStr}{message \optional{\, object}}
+Drop to the low-level debugger with message \var{message}. The
+optional \var{object} argument is not used, but can easily be
+inspected from the debugger.
+
+Note that you should use this function with extreme care: if no
+low-level debugger like MacsBug is installed this call will crash your
+system. It is intended mainly for developers of Python extension
+modules.
+\end{funcdesc}
+
 \begin{funcdesc}{openrf}{name \optional{\, mode}}
 Open the resource fork of a file. Arguments are the same as for the
 builtin function \code{open}. The object returned has file-like
diff --git a/Doc/libmacostools.tex b/Doc/libmacostools.tex
index 1e60983..3a3c3a3 100644
--- a/Doc/libmacostools.tex
+++ b/Doc/libmacostools.tex
@@ -9,14 +9,17 @@
 
 \renewcommand{\indexsubitem}{(in module macostools)}
 
-\begin{funcdesc}{copy}{src\, dst\optional{\, createpath}}
+\begin{funcdesc}{copy}{src\, dst\optional{\, createpath, copytimes}}
 Copy file \var{src} to \var{dst}. The files can be specified as
 pathnames or \code{FSSpec} objects. If \var{createpath} is non-zero
 \var{dst} must be a pathname and the folders leading to the
-destination are created if necessary.
-The method copies data and resource fork and some finder information
-(creator, type and flags). Custom icons, comments and icon position
-are not copied.
+destination are created if necessary.  The method copies data and
+resource fork and some finder information (creator, type, flags) and
+optionally the creation, modification and backup times (default is to
+copy them). Custom icons, comments and icon position are not copied.
+
+If the source is an alias the original to which the alias points is
+copied, not the aliasfile.
 \end{funcdesc}
 
 \begin{funcdesc}{copytree}{src\, dst}
@@ -30,6 +33,13 @@
 specified as pathnames or \var{FSSpec} objects.
 \end{funcdesc}
 
+\begin{funcdesc}{touched}{dst}
+Tell the finder that some bits of finder-information such as creator
+or type for file \var{dst} has changed. The file can be specified by
+pathname or fsspec. This call should prod the finder into redrawing the
+files icon.
+\end{funcdesc}
+
 \begin{datadesc}{BUFSIZ}
 The buffer size for \code{copy}, default 1 megabyte.
 \end{datadesc}
@@ -37,3 +47,53 @@
 Note that the process of creating finder aliases is not specified in
 the Apple documentation. Hence, aliases created with \code{mkalias}
 could conceivably have incompatible behaviour in some cases.
+
+\section{Standard module \sectcode{findertools}}
+\stmodindex{findertools}
+
+This module contains routines that give Python programs access to some
+functionality provided by the finder. They are implemented as wrappers
+around the AppleEvent interface to the finder.
+
+All file and folder parameters can be specified either as full
+pathnames or as \code{FSSpec} objects.
+
+The \code{findertools} module defines the following functions:
+
+\renewcommand{\indexsubitem}{(in module macostools)}
+
+\begin{funcdesc}{launch}{file}
+Tell the finder to launch \var{file}. What launching means depends on the file:
+applications are started, folders are opened and documents are opened
+in the correct application.
+\end{funcdesc}
+
+\begin{funcdesc}{Print}{file}
+Tell the finder to print a file (again specified by full pathname or
+FSSpec). The behaviour is identical to selecting the file and using
+the print command in the finder.
+\end{funcdesc}
+
+\begin{funcdesc}{copy}{file, destdir}
+Tell the finder to copy a file or folder \var{file} to folder
+\var{destdir}. The function returns an \code{Alias} object pointing to
+the new file.
+\end{funcdesc}
+
+\begin{funcdesc}{move}{file, destdir}
+Tell the finder to move a file or folder \var{file} to folder
+\var{destdir}. The function returns an \code{Alias} object pointing to
+the new file.
+\end{funcdesc}
+
+\begin{funcdesc}{sleep}{}
+Tell the finder to put the mac to sleep, if your machine supports it.
+\end{funcdesc}
+
+\begin{funcdesc}{restart}{}
+Tell the finder to perform an orderly restart of the machine.
+\end{funcdesc}
+
+\begin{funcdesc}{shutdown}{}
+Tell the finder to perform an orderly shutdown of the machine.
+\end{funcdesc}
diff --git a/Doc/libmacui.tex b/Doc/libmacui.tex
index 1c2df7c..56a00c3 100644
--- a/Doc/libmacui.tex
+++ b/Doc/libmacui.tex
@@ -97,6 +97,14 @@
 and a callback routine. The callback is called with the arguments
 menu-id, item number within menu (1-based), current front window and
 the event record.
+
+In stead of a callable object the callback can also be a string. In
+this case menu selection causes the lookup of a method in the topmost
+window and the application. The method name is the callback string
+with \code{'domenu_'} prepended.
+
+Calling the \code{MenuBar} \code{fixmenudimstate} method sets the
+correct dimming for all menu items based on the current front window.
 \end{funcdesc}
 
 \begin{funcdesc}{Separator}{menu}
@@ -125,6 +133,13 @@
 size given, so parts may be offscreen.
 \end{funcdesc}
 
+\begin{funcdesc}{setwatchcursor}{}
+Set the mouse cursor to a watch.
+\end{funcdesc}
+
+\begin{funcdesc}{setarrowcursor}{}
+Set the mouse cursor to an arrow.
+\end{funcdesc}
 
 \subsection{Application objects}
 Application objects have the following methods, among others:
@@ -147,7 +162,8 @@
 rolling. \var{Mask} is the mask of events you want to handle,
 \var{wait} is the number of ticks you want to leave to other
 concurrent application (default 0, which is probably not a good
-idea). This method does not return until \code{self} is raised.
+idea). While raising \code{self} to exit the mainloop is still
+supported it is not recommended, call \code{self._quit} instead.
 
 The event loop is split into many small parts, each of which can be
 overridden. The default methods take care of dispatching events to
@@ -155,6 +171,10 @@
 for non-FrameWork windows, etc.
 \end{funcdesc}
 
+\begin{funcdesc}{_quit}{}
+Terminate the event \code{mainloop} at the next convenient moment.
+\end{funcdesc}
+
 \begin{funcdesc}{do_char}{c\, event}
 The user typed character \var{c}. The complete details of the event
 can be found in the \var{event} structure. This method can also be
@@ -226,7 +246,7 @@
 \subsection{ScrolledWindow Object}
 
 ScrolledWindow objects are ControlsWindow objects with the following
-extra mathods:
+extra methods:
 
 \renewcommand{\indexsubitem}{(ScrolledWindow method)}
 
@@ -296,3 +316,63 @@
 toggle buttons, etc.
 \end{funcdesc}
 
+\section{Standard module \sectcode{MiniAEFrame}}
+\stmodindex{MiniAEFrame}
+
+The module \var{MiniAEFrame} provides a framework for an application
+that can function as an OSA server, i.e. receive and process
+AppleEvents. It can be used in conjunction with \var{FrameWork} or
+standalone.
+
+This module is temporary, it will eventually be replaced by a module
+that handles argument names better and possibly automates making your
+application scriptable.
+
+The \var{MiniAEFrame} module defines the following classes:
+
+\renewcommand{\indexsubitem}{(in module MiniAEFrame)}
+
+\begin{funcdesc}{AEServer}{}
+A class that handles AppleEvent dispatch. Your application should
+subclass this class together with either
+\code{MiniAEFrame.MiniApplication} or
+\code{FrameWork.Application}. Your \code{__init__} method should call
+the \code{__init__} method for both classes.
+\end{funcdesc}
+
+\begin{funcdesc}{MiniApplication}{}
+A class that is more or less compatible with
+\code{FrameWork.Application} but with less functionality. Its
+eventloop supports the apple menu, command-dot and AppleEvents, other
+events are passed on to the Python interpreter and/or Sioux.
+Useful if your application wants to use \code{AEServer} but does not
+provide its own windows, etc.
+\end{funcdesc}
+
+\subsection{AEServer Objects}
+
+\renewcommand{\indexsubitem}{(AEServer method)}
+
+\begin{funcdesc}{installaehandler}{classe\, type\, callback}
+Installs an AppleEvent handler. \code{Classe} and \code{type} are the
+four-char OSA Class and Type designators, \code{'****'} wildcards are
+allowed. When a matching AppleEvent is received the parameters are
+decoded and your callback is invoked.
+\end{funcdesc}
+
+\begin{funcdesc}{callback}{_object\, **kwargs}
+Your callback is called with the OSA Direct Object as first positional
+parameter. The other parameters are passed as keyword arguments, with
+the 4-char designator as name. Three extra keyword parameters are
+passed: \code{_class} and \code{_type} are the Class and Type
+designators and \code{_attributes} is a dictionary with the AppleEvent
+attributes.
+
+The return value of your method is packed with
+\code{aetools.packevent} and sent as reply.
+\end{funcdesc}
+
+Note that there are some serious problems with the current
+design. AppleEvents which have non-identifier 4-char designators for
+arguments are not implementable, and it is not possible to return an
+error to the originator. This will be addressed in a future release.
diff --git a/Doc/mac/libmac.tex b/Doc/mac/libmac.tex
index 344d300..270620a 100644
--- a/Doc/mac/libmac.tex
+++ b/Doc/mac/libmac.tex
@@ -58,7 +58,14 @@
 \code{sync},
 \code{unlink},
 \code{write},
-as well as the exception \code{error}.
+as well as the exception \code{error}. Note that the times returned by
+\code{stat} are floating-point values, like all time values in
+MacPython.
+
+One additional function is available: \code{xstat}. This function
+returns the same information as \code{stat}, but with three extra
+values appended: the size of the resource fork of the file and its
+4-char creator and type.
 
 \section{Standard Module \sectcode{macpath}}
 
diff --git a/Doc/mac/libmacfs.tex b/Doc/mac/libmacfs.tex
index f4a7034..be566cb 100644
--- a/Doc/mac/libmacfs.tex
+++ b/Doc/mac/libmacfs.tex
@@ -89,6 +89,11 @@
 standard module \var{MACFS}.
 \end{funcdesc}
 
+\begin{funcdesc}{FindApplication}{creator}
+Locate the application with 4-char creator code \var{creator}. The
+function returns an FSSpec object pointing to the application.
+\end{funcdesc}
+
 \subsection{FSSpec objects}
 
 \renewcommand{\indexsubitem}{(FSSpec object attribute)}
@@ -134,6 +139,17 @@
 \var{finfo} object.
 \end{funcdesc}
 
+\begin{funcdesc}{GetDates}{}
+Return a tuple with three floating point values representing the
+creation date, modification date and backup date of the file.
+\end{funcdesc}
+
+\begin{funcdesc}{SetDates}{crdate\, moddate\, backupdate}
+Set the creation, modification and backup date of the file. The values
+are in the standard floating point format used for times throughout
+Python.
+\end{funcdesc}
+
 \subsection{alias objects}
 
 \renewcommand{\indexsubitem}{(alias object attribute)}
diff --git a/Doc/mac/libmacos.tex b/Doc/mac/libmacos.tex
index e48a0c3..2b7628f 100644
--- a/Doc/mac/libmacos.tex
+++ b/Doc/mac/libmacos.tex
@@ -15,6 +15,8 @@
 functions in this module or from other mac-specific modules like the
 toolbox interfaces. The arguments are the integer error code (the
 \var{OSErr} value) and a textual description of the error code.
+Symbolic names for all known error codes are defined in the standard
+module \var{macerrors}.
 \end{excdesc}
 
 \begin{funcdesc}{SetHighLevelEventHandler}{handler}
@@ -42,8 +44,8 @@
 the background values will be set the the same as the foreground
 values. The function returns nothing.
 
-The default values, which are based on nothing at all, are 12, 6, 1
-and 12 respectively.
+The default values, which are based on minimal empirical testing, are 12, 1, 6
+and 2 respectively.
 \end{funcdesc}
 
 \begin{funcdesc}{EnableAppswitch}{onoff}
@@ -77,11 +79,22 @@
 This function will put a splash window
 on-screen, with the contents of the DLOG resource specified by
 \code{resid}. Calling with a zero argument will remove the splash
-screen. This function is useful if you want to post a splash screen
+screen. This function is useful if you want an applet to post a splash screen
 early in initialization without first having to load numerous
 extension modules.
 \end{funcdesc}
 
+\begin{funcdesc}{DebugStr}{message \optional{\, object}}
+Drop to the low-level debugger with message \var{message}. The
+optional \var{object} argument is not used, but can easily be
+inspected from the debugger.
+
+Note that you should use this function with extreme care: if no
+low-level debugger like MacsBug is installed this call will crash your
+system. It is intended mainly for developers of Python extension
+modules.
+\end{funcdesc}
+
 \begin{funcdesc}{openrf}{name \optional{\, mode}}
 Open the resource fork of a file. Arguments are the same as for the
 builtin function \code{open}. The object returned has file-like
diff --git a/Doc/mac/libmacostools.tex b/Doc/mac/libmacostools.tex
index 1e60983..3a3c3a3 100644
--- a/Doc/mac/libmacostools.tex
+++ b/Doc/mac/libmacostools.tex
@@ -9,14 +9,17 @@
 
 \renewcommand{\indexsubitem}{(in module macostools)}
 
-\begin{funcdesc}{copy}{src\, dst\optional{\, createpath}}
+\begin{funcdesc}{copy}{src\, dst\optional{\, createpath, copytimes}}
 Copy file \var{src} to \var{dst}. The files can be specified as
 pathnames or \code{FSSpec} objects. If \var{createpath} is non-zero
 \var{dst} must be a pathname and the folders leading to the
-destination are created if necessary.
-The method copies data and resource fork and some finder information
-(creator, type and flags). Custom icons, comments and icon position
-are not copied.
+destination are created if necessary.  The method copies data and
+resource fork and some finder information (creator, type, flags) and
+optionally the creation, modification and backup times (default is to
+copy them). Custom icons, comments and icon position are not copied.
+
+If the source is an alias the original to which the alias points is
+copied, not the aliasfile.
 \end{funcdesc}
 
 \begin{funcdesc}{copytree}{src\, dst}
@@ -30,6 +33,13 @@
 specified as pathnames or \var{FSSpec} objects.
 \end{funcdesc}
 
+\begin{funcdesc}{touched}{dst}
+Tell the finder that some bits of finder-information such as creator
+or type for file \var{dst} has changed. The file can be specified by
+pathname or fsspec. This call should prod the finder into redrawing the
+files icon.
+\end{funcdesc}
+
 \begin{datadesc}{BUFSIZ}
 The buffer size for \code{copy}, default 1 megabyte.
 \end{datadesc}
@@ -37,3 +47,53 @@
 Note that the process of creating finder aliases is not specified in
 the Apple documentation. Hence, aliases created with \code{mkalias}
 could conceivably have incompatible behaviour in some cases.
+
+\section{Standard module \sectcode{findertools}}
+\stmodindex{findertools}
+
+This module contains routines that give Python programs access to some
+functionality provided by the finder. They are implemented as wrappers
+around the AppleEvent interface to the finder.
+
+All file and folder parameters can be specified either as full
+pathnames or as \code{FSSpec} objects.
+
+The \code{findertools} module defines the following functions:
+
+\renewcommand{\indexsubitem}{(in module macostools)}
+
+\begin{funcdesc}{launch}{file}
+Tell the finder to launch \var{file}. What launching means depends on the file:
+applications are started, folders are opened and documents are opened
+in the correct application.
+\end{funcdesc}
+
+\begin{funcdesc}{Print}{file}
+Tell the finder to print a file (again specified by full pathname or
+FSSpec). The behaviour is identical to selecting the file and using
+the print command in the finder.
+\end{funcdesc}
+
+\begin{funcdesc}{copy}{file, destdir}
+Tell the finder to copy a file or folder \var{file} to folder
+\var{destdir}. The function returns an \code{Alias} object pointing to
+the new file.
+\end{funcdesc}
+
+\begin{funcdesc}{move}{file, destdir}
+Tell the finder to move a file or folder \var{file} to folder
+\var{destdir}. The function returns an \code{Alias} object pointing to
+the new file.
+\end{funcdesc}
+
+\begin{funcdesc}{sleep}{}
+Tell the finder to put the mac to sleep, if your machine supports it.
+\end{funcdesc}
+
+\begin{funcdesc}{restart}{}
+Tell the finder to perform an orderly restart of the machine.
+\end{funcdesc}
+
+\begin{funcdesc}{shutdown}{}
+Tell the finder to perform an orderly shutdown of the machine.
+\end{funcdesc}
diff --git a/Doc/mac/libmacui.tex b/Doc/mac/libmacui.tex
index 1c2df7c..56a00c3 100644
--- a/Doc/mac/libmacui.tex
+++ b/Doc/mac/libmacui.tex
@@ -97,6 +97,14 @@
 and a callback routine. The callback is called with the arguments
 menu-id, item number within menu (1-based), current front window and
 the event record.
+
+In stead of a callable object the callback can also be a string. In
+this case menu selection causes the lookup of a method in the topmost
+window and the application. The method name is the callback string
+with \code{'domenu_'} prepended.
+
+Calling the \code{MenuBar} \code{fixmenudimstate} method sets the
+correct dimming for all menu items based on the current front window.
 \end{funcdesc}
 
 \begin{funcdesc}{Separator}{menu}
@@ -125,6 +133,13 @@
 size given, so parts may be offscreen.
 \end{funcdesc}
 
+\begin{funcdesc}{setwatchcursor}{}
+Set the mouse cursor to a watch.
+\end{funcdesc}
+
+\begin{funcdesc}{setarrowcursor}{}
+Set the mouse cursor to an arrow.
+\end{funcdesc}
 
 \subsection{Application objects}
 Application objects have the following methods, among others:
@@ -147,7 +162,8 @@
 rolling. \var{Mask} is the mask of events you want to handle,
 \var{wait} is the number of ticks you want to leave to other
 concurrent application (default 0, which is probably not a good
-idea). This method does not return until \code{self} is raised.
+idea). While raising \code{self} to exit the mainloop is still
+supported it is not recommended, call \code{self._quit} instead.
 
 The event loop is split into many small parts, each of which can be
 overridden. The default methods take care of dispatching events to
@@ -155,6 +171,10 @@
 for non-FrameWork windows, etc.
 \end{funcdesc}
 
+\begin{funcdesc}{_quit}{}
+Terminate the event \code{mainloop} at the next convenient moment.
+\end{funcdesc}
+
 \begin{funcdesc}{do_char}{c\, event}
 The user typed character \var{c}. The complete details of the event
 can be found in the \var{event} structure. This method can also be
@@ -226,7 +246,7 @@
 \subsection{ScrolledWindow Object}
 
 ScrolledWindow objects are ControlsWindow objects with the following
-extra mathods:
+extra methods:
 
 \renewcommand{\indexsubitem}{(ScrolledWindow method)}
 
@@ -296,3 +316,63 @@
 toggle buttons, etc.
 \end{funcdesc}
 
+\section{Standard module \sectcode{MiniAEFrame}}
+\stmodindex{MiniAEFrame}
+
+The module \var{MiniAEFrame} provides a framework for an application
+that can function as an OSA server, i.e. receive and process
+AppleEvents. It can be used in conjunction with \var{FrameWork} or
+standalone.
+
+This module is temporary, it will eventually be replaced by a module
+that handles argument names better and possibly automates making your
+application scriptable.
+
+The \var{MiniAEFrame} module defines the following classes:
+
+\renewcommand{\indexsubitem}{(in module MiniAEFrame)}
+
+\begin{funcdesc}{AEServer}{}
+A class that handles AppleEvent dispatch. Your application should
+subclass this class together with either
+\code{MiniAEFrame.MiniApplication} or
+\code{FrameWork.Application}. Your \code{__init__} method should call
+the \code{__init__} method for both classes.
+\end{funcdesc}
+
+\begin{funcdesc}{MiniApplication}{}
+A class that is more or less compatible with
+\code{FrameWork.Application} but with less functionality. Its
+eventloop supports the apple menu, command-dot and AppleEvents, other
+events are passed on to the Python interpreter and/or Sioux.
+Useful if your application wants to use \code{AEServer} but does not
+provide its own windows, etc.
+\end{funcdesc}
+
+\subsection{AEServer Objects}
+
+\renewcommand{\indexsubitem}{(AEServer method)}
+
+\begin{funcdesc}{installaehandler}{classe\, type\, callback}
+Installs an AppleEvent handler. \code{Classe} and \code{type} are the
+four-char OSA Class and Type designators, \code{'****'} wildcards are
+allowed. When a matching AppleEvent is received the parameters are
+decoded and your callback is invoked.
+\end{funcdesc}
+
+\begin{funcdesc}{callback}{_object\, **kwargs}
+Your callback is called with the OSA Direct Object as first positional
+parameter. The other parameters are passed as keyword arguments, with
+the 4-char designator as name. Three extra keyword parameters are
+passed: \code{_class} and \code{_type} are the Class and Type
+designators and \code{_attributes} is a dictionary with the AppleEvent
+attributes.
+
+The return value of your method is packed with
+\code{aetools.packevent} and sent as reply.
+\end{funcdesc}
+
+Note that there are some serious problems with the current
+design. AppleEvents which have non-identifier 4-char designators for
+arguments are not implementable, and it is not possible to return an
+error to the originator. This will be addressed in a future release.
