diff --git a/Doc/mac/libaepack.tex b/Doc/mac/libaepack.tex
index 2dfee0b..b8276be 100644
--- a/Doc/mac/libaepack.tex
+++ b/Doc/mac/libaepack.tex
@@ -12,7 +12,7 @@
 The \module{aepack} module defines functions for converting (packing)
 Python variables to AppleEvent descriptors and back (unpacking).
 Within Python the AppleEvent descriptor is handled by Python objects
-of built-in type \pytype{AEDesc}, defined in module \refmodule{AE}.
+of built-in type \class{AEDesc}, defined in module \refmodule{AE}.
 
 The \module{aepack} module defines the following functions:
 
@@ -25,21 +25,20 @@
 
 \begin{tableii}{l|l}{textrm}{Python type}{descriptor type}
   \lineii{\class{FSSpec}}{typeFSS}
+  \lineii{\class{FSRef}}{typeFSRef}
   \lineii{\class{Alias}}{typeAlias}
   \lineii{integer}{typeLong (32 bit integer)}
   \lineii{float}{typeFloat (64 bit floating point)}
   \lineii{string}{typeText}
+  \lineii{unicode}{typeUnicodeText}
   \lineii{list}{typeAEList}
   \lineii{dictionary}{typeAERecord}
   \lineii{instance}{\emph{see below}}
 \end{tableii}  
  
-\pytype{FSSpec} and \pytype{Alias} are built-in object types defined
-in the module \refmodule{macfs}. 
-  
 If \var{x} is a Python instance then this function attempts to call an
 \method{__aepack__()} method.  This method should return an
-\pytype{AE.AEDesc} object.
+\class{AE.AEDesc} object.
 
 If the conversion \var{x} is not defined above, this function returns
 the Python string representation of a value (the repr() function)
diff --git a/Doc/mac/libctb.tex b/Doc/mac/libctb.tex
deleted file mode 100644
index 337ca0f..0000000
--- a/Doc/mac/libctb.tex
+++ /dev/null
@@ -1,159 +0,0 @@
-\section{\module{ctb} ---
-         Interface to the Communications Tool Box}
-
-\declaremodule{builtin}{ctb}
-  \platform{Mac}
-\modulesynopsis{Interfaces to the Communications Tool Box.  Only the
-                Connection Manager is supported.}
-
-
-This module provides a partial interface to the Macintosh
-Communications Toolbox. Currently, only Connection Manager tools are
-supported.
-
-This module is only available under MacOS9 or earlier, in classic PPC
-MacPython.
-\index{Communications Toolbox, Macintosh}
-\index{Macintosh Communications Toolbox}
-\index{Connection Manager}
-
-\begin{datadesc}{error}
-The exception raised on errors.
-\end{datadesc}
-
-\begin{datadesc}{cmData}
-\dataline{cmCntl}
-\dataline{cmAttn}
-Flags for the \var{channel} argument of the \method{Read()} and
-\method{Write()} methods.
-\end{datadesc}
-
-\begin{datadesc}{cmFlagsEOM}
-End-of-message flag for \method{Read()} and \method{Write()}.
-\end{datadesc}
-
-\begin{datadesc}{choose*}
-Values returned by \method{Choose()}.
-\end{datadesc}
-
-\begin{datadesc}{cmStatus*}
-Bits in the status as returned by \method{Status()}.
-\end{datadesc}
-
-\begin{funcdesc}{available}{}
-Return \code{1} if the Communication Toolbox is available, zero otherwise.
-\end{funcdesc}
-
-\begin{funcdesc}{CMNew}{name, sizes}
-Create a connection object using the connection tool named
-\var{name}. \var{sizes} is a 6-tuple given buffer sizes for data in,
-data out, control in, control out, attention in and attention out.
-Alternatively, passing \code{None} for \var{sizes} will result in
-default buffer sizes.
-\end{funcdesc}
-
-
-\subsection{Connection Objects \label{connection-object}}
-
-For all connection methods that take a \var{timeout} argument, a value
-of \code{-1} is indefinite, meaning that the command runs to completion.
-
-\begin{memberdesc}[connection]{callback}
-If this member is set to a value other than \code{None} it should point
-to a function accepting a single argument (the connection
-object). This will make all connection object methods work
-asynchronously, with the callback routine being called upon
-completion.
-
-\note{For reasons beyond my understanding, the callback routine
-is currently never called. You are advised against using asynchronous
-calls for the time being.}
-\end{memberdesc}
-
-
-\begin{methoddesc}[connection]{Open}{timeout}
-Open an outgoing connection, waiting at most \var{timeout} seconds for
-the connection to be established.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Listen}{timeout}
-Wait for an incoming connection. Stop waiting after \var{timeout}
-seconds. This call is only meaningful to some tools.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{accept}{yesno}
-Accept (when \var{yesno} is non-zero) or reject an incoming call after
-\method{Listen()} returned.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Close}{timeout, now}
-Close a connection. When \var{now} is zero, the close is orderly
-(outstanding output is flushed, etc.)\ with a timeout of
-\var{timeout} seconds. When \var{now} is non-zero the close is
-immediate, discarding output.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Read}{len, chan, timeout}
-Read \var{len} bytes, or until \var{timeout} seconds have passed, from 
-the channel \var{chan} (which is one of \constant{cmData},
-\constant{cmCntl} or \constant{cmAttn}). Return a 2-tuple:\ the data
-read and the end-of-message flag, \constant{cmFlagsEOM}.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Write}{buf, chan, timeout, eom}
-Write \var{buf} to channel \var{chan}, aborting after \var{timeout}
-seconds. When \var{eom} has the value \constant{cmFlagsEOM}, an
-end-of-message indicator will be written after the data (if this
-concept has a meaning for this communication tool). The method returns
-the number of bytes written.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Status}{}
-Return connection status as the 2-tuple \code{(\var{sizes},
-\var{flags})}. \var{sizes} is a 6-tuple giving the actual buffer sizes used
-(see \function{CMNew()}), \var{flags} is a set of bits describing the state
-of the connection.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{GetConfig}{}
-Return the configuration string of the communication tool. These
-configuration strings are tool-dependent, but usually easily parsed
-and modified.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{SetConfig}{str}
-Set the configuration string for the tool. The strings are parsed
-left-to-right, with later values taking precedence. This means
-individual configuration parameters can be modified by simply appending
-something like \code{'baud 4800'} to the end of the string returned by
-\method{GetConfig()} and passing that to this method. The method returns
-the number of characters actually parsed by the tool before it
-encountered an error (or completed successfully).
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Choose}{}
-Present the user with a dialog to choose a communication tool and
-configure it. If there is an outstanding connection some choices (like
-selecting a different tool) may cause the connection to be
-aborted. The return value (one of the \constant{choose*} constants) will
-indicate this.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Idle}{}
-Give the tool a chance to use the processor. You should call this
-method regularly.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Abort}{}
-Abort an outstanding asynchronous \method{Open()} or \method{Listen()}.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Reset}{}
-Reset a connection. Exact meaning depends on the tool.
-\end{methoddesc}
-
-\begin{methoddesc}[connection]{Break}{length}
-Send a break. Whether this means anything, what it means and
-interpretation of the \var{length} parameter depends on the tool in
-use.
-\end{methoddesc}
diff --git a/Doc/mac/libmac.tex b/Doc/mac/libmac.tex
index b0a3382..160753a 100644
--- a/Doc/mac/libmac.tex
+++ b/Doc/mac/libmac.tex
@@ -6,9 +6,10 @@
 \modulesynopsis{Implementations for the \module{os} module.}
 
 
-This module implements the operating system dependent functionality
+This module implements the Mac OS 9 operating system dependent functionality
 provided by the standard module \module{os}\refstmodindex{os}.  It is
-best accessed through the \module{os} module.
+best accessed through the \module{os} module. This module is only available in
+MacPython-OS9, on MacPython-OSX \module{posix} is used.
 
 The following functions are available in this module:
 \function{chdir()},
@@ -29,23 +30,7 @@
 \function{write()},
 as well as the exception \exception{error}. Note that the times
 returned by \function{stat()} are floating-point values, like all time
-values in MacPython.
-
-One additional function is available, but only under Classic MacPython,
-not under Carbon MacPython:
-
-\begin{funcdesc}{xstat}{path}
-  This function returns the same information as \function{stat()}, but
-  with three additional values appended: the size of the resource fork
-  of the file and its 4-character creator and type.
-  Availability: Classic MacPython only.
-  \deprecated{2.3}{Use the \function{\refmodule{macfs}.FSSpec()}
-                   function to get an FSSpec object for the file, then
-                   use the \method{GetCreatorType()} method to get the
-                   creator and type information.  It will no longer be
-                   possible to get the size of the resource fork.}
-\end{funcdesc}
-
+values in MacPython-OS9.
 
 \section{\module{macpath} ---
          MacOS path manipulation functions}
diff --git a/Doc/mac/libmacfs.tex b/Doc/mac/libmacfs.tex
index fcb342c..a548fef 100644
--- a/Doc/mac/libmacfs.tex
+++ b/Doc/mac/libmacfs.tex
@@ -1,11 +1,15 @@
 \section{\module{macfs} ---
          Various file system services}
 
-\declaremodule{builtin}{macfs}
+\declaremodule{standard}{macfs}
   \platform{Mac}
 \modulesynopsis{Support for FSSpec, the Alias Manager,
                 \program{finder} aliases, and the Standard File package.}
 
+\deprecated{2.3}{The macfs module should be considered obsolete. For
+\class{FSSpec}, \class{FSRef} and \class{Alias} handling use the
+Carbon.File or Carbon.Folder module. For file dialogs use the 
+\module{EasyDialogs} module.}
 
 This module provides access to Macintosh FSSpec handling, the Alias
 Manager, \program{finder} aliases and the Standard File package.
@@ -15,9 +19,9 @@
 
 Whenever a function or method expects a \var{file} argument, this
 argument can be one of three things:\ (1) a full or partial Macintosh
-pathname, (2) an \pytype{FSSpec} object or (3) a 3-tuple
+pathname, (2) an \class{FSSpec} object or (3) a 3-tuple
 \code{(\var{wdRefNum}, \var{parID}, \var{name})} as described in
-\citetitle{Inside Macintosh:\ Files}. An \pytype{FSSpec} can point to
+\citetitle{Inside Macintosh:\ Files}. An \class{FSSpec} can point to
 a non-existing file, as long as the folder containing the file exists.
 Under MacPython the same is true for a pathname, but not under unix-Pyton
 because of the way pathnames and FSRefs works. See Apple's documentation
@@ -26,42 +30,39 @@
 A description of aliases and the
 Standard File package can also be found there.
 
-\note{A module, \refmodule{macfsn}, is auto-imported to replace
-StandardFile calls in \module{macfs} with NavServices calls.}
-
 \begin{funcdesc}{FSSpec}{file}
-Create an \pytype{FSSpec} object for the specified file.
+Create an \class{FSSpec} object for the specified file.
 \end{funcdesc}
 
 \begin{funcdesc}{RawFSSpec}{data}
-Create an \pytype{FSSpec} object given the raw data for the \C{}
-structure for the \pytype{FSSpec} as a string.  This is mainly useful
-if you have obtained an \pytype{FSSpec} structure over a network.
+Create an \class{FSSpec} object given the raw data for the \C{}
+structure for the \class{FSSpec} as a string.  This is mainly useful
+if you have obtained an \class{FSSpec} structure over a network.
 \end{funcdesc}
 
 \begin{funcdesc}{RawAlias}{data}
-Create an \pytype{Alias} object given the raw data for the \C{}
+Create an \class{Alias} object given the raw data for the \C{}
 structure for the alias as a string.  This is mainly useful if you
-have obtained an \pytype{FSSpec} structure over a network.
+have obtained an \class{FSSpec} structure over a network.
 \end{funcdesc}
 
 \begin{funcdesc}{FInfo}{}
-Create a zero-filled \pytype{FInfo} object.
+Create a zero-filled \class{FInfo} object.
 \end{funcdesc}
 
 \begin{funcdesc}{ResolveAliasFile}{file}
 Resolve an alias file. Returns a 3-tuple \code{(\var{fsspec},
 \var{isfolder}, \var{aliased})} where \var{fsspec} is the resulting
-\pytype{FSSpec} object, \var{isfolder} is true if \var{fsspec} points
+\class{FSSpec} object, \var{isfolder} is true if \var{fsspec} points
 to a folder and \var{aliased} is true if the file was an alias in the
-first place (otherwise the \pytype{FSSpec} object for the file itself
+first place (otherwise the \class{FSSpec} object for the file itself
 is returned).
 \end{funcdesc}
 
 \begin{funcdesc}{StandardGetFile}{\optional{type, \moreargs}}
 Present the user with a standard ``open input file''
 dialog. Optionally, you can pass up to four 4-character file types to limit
-the files the user can choose from. The function returns an \pytype{FSSpec}
+the files the user can choose from. The function returns an \class{FSSpec}
 object and a flag indicating that the user completed the dialog
 without cancelling.
 \end{funcdesc}
@@ -75,7 +76,7 @@
 Present the user with a standard ``open output file''
 dialog. \var{prompt} is the prompt string, and the optional
 \var{default} argument initializes the output file name. The function
-returns an \pytype{FSSpec} object and a flag indicating that the user
+returns an \class{FSSpec} object and a flag indicating that the user
 completed the dialog without cancelling.
 \end{funcdesc}
 
@@ -83,7 +84,7 @@
 Present the user with a non-standard ``select a directory'' dialog.  You
 have to first open the directory before clicking on the ``select current
 directory'' button. \var{prompt} is the prompt string which will be
-displayed at the top of the dialog. Return an \pytype{FSSpec} object and
+displayed at the top of the dialog. Return an \class{FSSpec} object and
 a success-indicator.
 \end{funcdesc}
 
@@ -105,20 +106,21 @@
 search, \var{which} is the 4-character string specifying which folder to
 locate. Setting \var{create} causes the folder to be created if it
 does not exist. Returns a \code{(\var{vrefnum}, \var{dirid})} tuple.
+
+The constants for \var{where} and \var{which} can be obtained from the
+standard module \var{Carbon.Folders}.
 \end{funcdesc}
 
 \begin{funcdesc}{NewAliasMinimalFromFullPath}{pathname}
-Return a minimal \pytype{alias} object that points to the given file, which
+Return a minimal \class{alias} object that points to the given file, which
 must be specified as a full pathname. This is the only way to create an
-\pytype{Alias} pointing to a non-existing file.
+\class{Alias} pointing to a non-existing file.
 
-The constants for \var{where} and \var{which} can be obtained from the
-standard module \var{MACFS}.
 \end{funcdesc}
 
 \begin{funcdesc}{FindApplication}{creator}
 Locate the application with 4-character creator code \var{creator}. The
-function returns an \pytype{FSSpec} object pointing to the application.
+function returns an \class{FSSpec} object pointing to the application.
 \end{funcdesc}
 
 
@@ -130,13 +132,13 @@
 \end{memberdesc}
 
 \begin{methoddesc}[FSSpec]{as_pathname}{}
-Return the full pathname of the file described by the \pytype{FSSpec}
+Return the full pathname of the file described by the \class{FSSpec}
 object.
 \end{methoddesc}
 
 \begin{methoddesc}[FSSpec]{as_tuple}{}
 Return the \code{(\var{wdRefNum}, \var{parID}, \var{name})} tuple of
-the file described by the \pytype{FSSpec} object.
+the file described by the \class{FSSpec} object.
 \end{methoddesc}
 
 \begin{methoddesc}[FSSpec]{NewAlias}{\optional{file}}
@@ -158,12 +160,12 @@
 \end{methoddesc}
 
 \begin{methoddesc}[FSSpec]{GetFInfo}{}
-Return a \pytype{FInfo} object describing the finder info for the file.
+Return a \class{FInfo} object describing the finder info for the file.
 \end{methoddesc}
 
 \begin{methoddesc}[FSSpec]{SetFInfo}{finfo}
 Set the finder info for the file to the values given as \var{finfo}
-(an \pytype{FInfo} object).
+(an \class{FInfo} object).
 \end{methoddesc}
 
 \begin{methoddesc}[FSSpec]{GetDates}{}
@@ -188,7 +190,7 @@
 \begin{methoddesc}[Alias]{Resolve}{\optional{file}}
 Resolve the alias. If the alias was created as a relative alias you
 should pass the file relative to which it is. Return the FSSpec for
-the file pointed to and a flag indicating whether the \pytype{Alias} object
+the file pointed to and a flag indicating whether the \class{Alias} object
 itself was modified during the search process. If the file does
 not exist but the path leading up to it does exist a valid fsspec
 is returned.
@@ -204,10 +206,10 @@
 \end{methoddesc}
 
 Note that it is currently not possible to directly manipulate a
-resource as an \pytype{Alias} object. Hence, after calling
+resource as an \class{Alias} object. Hence, after calling
 \method{Update()} or after \method{Resolve()} indicates that the alias
 has changed the Python program is responsible for getting the
-\member{data} value from the \pytype{Alias} object and modifying the
+\member{data} value from the \class{Alias} object and modifying the
 resource.
 
 
diff --git a/Doc/mac/libmacos.tex b/Doc/mac/libmacos.tex
index 3a2de16..dd1fb90 100644
--- a/Doc/mac/libmacos.tex
+++ b/Doc/mac/libmacos.tex
@@ -40,6 +40,8 @@
 Call \function{SetEventHandler()} without a parameter to clear the
 event handler. Setting an event handler while one is already set is an
 error.
+
+Availability: MacPython-OS9.
 \end{funcdesc}
 
 \begin{funcdesc}{SchedParams}{\optional{doint\optional{, evtmask\optional{,
@@ -63,6 +65,8 @@
 
 The most common use case is to call \code{SchedParams(0, 0)} to completely disable
 event handling in the interpreter mainloop.
+
+Availability: MacPython-OS9.
 \end{funcdesc}
 
 \begin{funcdesc}{HandleEvent}{ev}
@@ -74,6 +78,8 @@
 
 If you attempt to call this function from an event handler set through
 \function{SetEventHandler()} you will get an exception.
+
+Availability: MacPython-OS9.
 \end{funcdesc}
 
 \begin{funcdesc}{GetErrorString}{errno}
@@ -87,12 +93,15 @@
 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.
+
+Availability: MacPython-OS9.
 \end{funcdesc}
 
 \begin{funcdesc}{DebugStr}{message \optional{, object}}
-Drop to the low-level debugger with message \var{message}. The
+On Mac OS 9, 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.
+inspected from the debugger. On Mac OS X the string is simply printed
+to stderr.
 
 Note that you should use this function with extreme care: if no
 low-level debugger like MacsBug is installed this call will crash your
@@ -100,6 +109,27 @@
 modules.
 \end{funcdesc}
 
+\begin{funcdesc}{SysBeep}{}
+Ring the bell.
+\end{funcdesc}
+
+\begin{funcdesc}{GetTicks}{}
+Get the number of clock ticks (1/60th of a second) since system boot.
+\end{funcdesc}
+
+\begin{funcdesc}{GetCreatorAndType}{file}
+Return the file creator and file type as two four-character strings.
+The \var{file} parameter can be a pathname or an \code{FSSpec} or 
+\code{FSRef} object.
+\end{funcdesc}
+
+\begin{funcdesc}{SetCreatorAndType}{file, creator, type}
+Set the file creator and file type.
+The \var{file} parameter can be a pathname or an \code{FSSpec} or 
+\code{FSRef} object. \var{creator} and \var{type} must be four character
+strings.
+\end{funcdesc}
+
 \begin{funcdesc}{openrf}{name \optional{, mode}}
 Open the resource fork of a file. Arguments are the same as for the
 built-in function \function{open()}. The object returned has file-like
diff --git a/Doc/mac/libmacostools.tex b/Doc/mac/libmacostools.tex
index 78b706d..06ddbc7 100644
--- a/Doc/mac/libmacostools.tex
+++ b/Doc/mac/libmacostools.tex
@@ -7,14 +7,14 @@
 
 
 This module contains some convenience routines for file-manipulation
-on the Macintosh.
+on the Macintosh. All file parameters can be specified as
+pathnames, \class{FSRef} or \class{FSSpec} objects.
 
 The \module{macostools} module defines the following functions:
 
 
 \begin{funcdesc}{copy}{src, dst\optional{, createpath\optional{, copytimes}}}
-Copy file \var{src} to \var{dst}. The files can be specified as
-pathnames or \pytype{FSSpec} objects. If \var{createpath} is non-zero
+Copy file \var{src} to \var{dst}.  If \var{createpath} is non-zero
 the folders leading to \var{dst} are created if necessary.
 The method copies data and
 resource fork and some finder information (creator, type, flags) and
@@ -29,8 +29,7 @@
 \end{funcdesc}
 
 \begin{funcdesc}{mkalias}{src, dst}
-Create a finder alias \var{dst} pointing to \var{src}. Both may be
-specified as pathnames or \pytype{FSSpec} objects.
+Create a finder alias \var{dst} pointing to \var{src}.
 \end{funcdesc}
 
 \begin{funcdesc}{touched}{dst}
@@ -62,7 +61,7 @@
 around the AppleEvent\index{AppleEvents} interface to the finder.
 
 All file and folder parameters can be specified either as full
-pathnames or as \pytype{FSSpec} objects.
+pathnames, or as \class{FSRef} or \class{FSSpec} objects.
 
 The \module{findertools} module defines the following functions:
 
@@ -74,20 +73,19 @@
 \end{funcdesc}
 
 \begin{funcdesc}{Print}{file}
-Tell the finder to print a file (again specified by full pathname or
-\pytype{FSSpec}). The behaviour is identical to selecting the file and using
+Tell the finder to print a file. The behaviour is identical to selecting the file and using
 the print command in the finder's file menu.
 \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 \pytype{Alias} object pointing to
+\var{destdir}. The function returns an \class{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 \pytype{Alias} object pointing to
+\var{destdir}. The function returns an \class{Alias} object pointing to
 the new file.
 \end{funcdesc}
 
diff --git a/Doc/mac/libmacspeech.tex b/Doc/mac/libmacspeech.tex
deleted file mode 100644
index 2022178..0000000
--- a/Doc/mac/libmacspeech.tex
+++ /dev/null
@@ -1,98 +0,0 @@
-\section{\module{macspeech} ---
-         Interface to the Macintosh Speech Manager}
-
-\declaremodule{builtin}{macspeech}
-  \platform{Mac}
-\modulesynopsis{Interface to the Macintosh Speech Manager.}
-
-
-This module provides an interface to the Macintosh Speech Manager,
-\index{Macintosh Speech Manager}
-\index{Speech Manager, Macintosh}
-allowing you to let the Macintosh utter phrases. You need a version of
-the Speech Manager extension (version 1 and 2 have been tested) in
-your \file{Extensions} folder for this to work. The module does not
-provide full access to all features of the Speech Manager.
-
-This module is only available on MacOS9 and earlier in classic PPC
-MacPython.
-
-\begin{funcdesc}{Available}{}
-Test availability of the Speech Manager extension (and, on the
-PowerPC, the Speech Manager shared library). Return \code{0} or
-\code{1}.
-\end{funcdesc}
-
-\begin{funcdesc}{Version}{}
-Return the (integer) version number of the Speech Manager.
-\end{funcdesc}
-
-\begin{funcdesc}{SpeakString}{str}
-Utter the string \var{str} using the default voice,
-asynchronously. This aborts any speech that may still be active from
-prior \function{SpeakString()} invocations.
-\end{funcdesc}
-
-\begin{funcdesc}{Busy}{}
-Return the number of speech channels busy, system-wide.
-\end{funcdesc}
-
-\begin{funcdesc}{CountVoices}{}
-Return the number of different voices available.
-\end{funcdesc}
-
-\begin{funcdesc}{GetIndVoice}{num}
-Return a \pytype{Voice} object for voice number \var{num}.
-\end{funcdesc}
-
-\subsection{Voice Objects}
-\label{voice-objects}
-
-Voice objects contain the description of a voice. It is currently not
-yet possible to access the parameters of a voice.
-
-\setindexsubitem{(voice object method)}
-
-\begin{methoddesc}[Voice]{GetGender}{}
-Return the gender of the voice: \code{0} for male, \code{1} for female
-and \code{-1} for neuter.
-\end{methoddesc}
-
-\begin{methoddesc}[Voice]{NewChannel}{}
-Return a new Speech Channel object using this voice.
-\end{methoddesc}
-
-\subsection{Speech Channel Objects}
-\label{speech-channel-objects}
-
-A Speech Channel object allows you to speak strings with slightly more
-control than \function{SpeakString()}, and allows you to use multiple
-speakers at the same time. Please note that channel pitch and rate are
-interrelated in some way, so that to make your Macintosh sing you will
-have to adjust both.
-
-\begin{methoddesc}[Speech Channel]{SpeakText}{str}
-Start uttering the given string.
-\end{methoddesc}
-
-\begin{methoddesc}[Speech Channel]{Stop}{}
-Stop babbling.
-\end{methoddesc}
-
-\begin{methoddesc}[Speech Channel]{GetPitch}{}
-Return the current pitch of the channel, as a floating-point number.
-\end{methoddesc}
-
-\begin{methoddesc}[Speech Channel]{SetPitch}{pitch}
-Set the pitch of the channel.
-\end{methoddesc}
-
-\begin{methoddesc}[Speech Channel]{GetRate}{}
-Get the speech rate (utterances per minute) of the channel as a
-floating point number.
-\end{methoddesc}
-
-\begin{methoddesc}[Speech Channel]{SetRate}{rate}
-Set the speech rate of the channel.
-\end{methoddesc}
-
diff --git a/Doc/mac/libmacui.tex b/Doc/mac/libmacui.tex
index a3018ec..1c7a6e9 100644
--- a/Doc/mac/libmacui.tex
+++ b/Doc/mac/libmacui.tex
@@ -110,7 +110,85 @@
 \versionadded{2.0}
 \end{funcdesc}
 
+\begin{funcdesc}{AskFileForOpen}{
+	\optional{message}
+	\optional{, typeList}
+	\optional{, defaultLocation}
+	\optional{, defaultOptionFlags}
+	\optional{, location}
+	\optional{, clientName}
+	\optional{, windowTitle}
+	\optional{, actionButtonLabel}
+	\optional{, cancelButtonLabel}
+	\optional{, preferenceKey}
+	\optional{, popupExtension}
+	\optional{, eventProc}
+	\optional{, previewProc}
+	\optional{, filterProc}
+	\optional{, wanted}
+	}
+Post a dialog asking the user for a file to open, and return the file
+selected or \var{None} if the user cancelled.
+\var{message} is a text message to display,
+\var{typeList} is a list of 4-char filetypes allowable,
+\var{defaultLocation} is the pathname, FSSpec or FSRef of the folder
+to show initially,
+\var{location} is the \code{(x, y)} position on the screen where the
+dialog is shown,
+\var{actionButtonLabel} is a string to show in stead of ``Open'' in the
+OK button,
+\var{cancelButtonLabel} is a string to show in stead of ``Cancel'' in the
+cancel button,
+\var{wanted} is the type of value wanted as a return: \class{string},
+\class{unicode}, \class{FSSpec}, \class{FSRef} and subtypes thereof are
+acceptable.
 
+For a description of the other arguments please see the Apple Navigation
+Services documentation and the EasyDialogs sourcecode.
+\end{funcdesc}
+
+\begin{funcdesc}{AskFileForSave}{
+	\optional{message}
+	\optional{, savedFileName}
+	\optional{, defaultLocation}
+	\optional{, defaultOptionFlags}
+	\optional{, location}
+	\optional{, clientName}
+	\optional{, windowTitle}
+	\optional{, actionButtonLabel}
+	\optional{, cancelButtonLabel}
+	\optional{, preferenceKey}
+	\optional{, popupExtension}
+	\optional{, fileType}
+	\optional{, fileCreator}
+	\optional{, eventProc}
+	\optional{, wanted}
+	}
+Post a dialog asking the user for a file to save to, and return the file
+selected or \var{None} if the user cancelled. \var{savedFileName} is the
+default for the file name to save to (the return value). See AskFileForOpen
+for a description of the other arguments.
+\end{funcdesc}
+
+\begin{funcdesc}{AskFolder}{
+	\optional{message}
+	\optional{, defaultLocation}
+	\optional{, defaultOptionFlags}
+	\optional{, location}
+	\optional{, clientName}
+	\optional{, windowTitle}
+	\optional{, actionButtonLabel}
+	\optional{, cancelButtonLabel}
+	\optional{, preferenceKey}
+	\optional{, popupExtension}
+	\optional{, eventProc}
+	\optional{, filterProc}
+	\optional{, wanted}
+	}
+Post a dialog asking the user to select a folder, and return the folder
+selected or \var{None} if the user cancelled. See AskFileForOpen
+for a description of the arguments.
+\end{funcdesc}
 
 \subsection{ProgressBar Objects \label{progressbar-objects}}
 
diff --git a/Doc/mac/mac.tex b/Doc/mac/mac.tex
index 30e39a9..bbbd3aa 100644
--- a/Doc/mac/mac.tex
+++ b/Doc/mac/mac.tex
@@ -51,12 +51,10 @@
 \localmoduletable
 
 \input{libmac}
-\input{libctb}
 \input{libmacfs}
 \input{libmacic}
 \input{libmacos}
 \input{libmacostools}
-\input{libmacspeech}
 \input{libmacui}
 \input{libframework}
 \input{libminiae}
diff --git a/Doc/mac/toolbox.tex b/Doc/mac/toolbox.tex
index ea98529..ba28b95 100644
--- a/Doc/mac/toolbox.tex
+++ b/Doc/mac/toolbox.tex
@@ -13,8 +13,9 @@
 \citetitle[http://developer.apple.com/techpubs/macos8/mac8.html]{Inside
 Macintosh} or similar works.
 
-These modules all live in a package called \module{Carbon}. Despite the
-name Carbon they are also available under classic PPC MacPython.
+These modules all live in a package called \module{Carbon}. Despite that name
+they are not all part of the Carbon framework: CF is really in the CoreFoundation
+framework and Qt is in the QuickTime framework.
 The normal use pattern is
 
 \begin{verbatim}
@@ -36,6 +37,11 @@
   \platform{Mac}
 \modulesynopsis{Interface to the Apple Events toolbox.}
 
+\section{\module{Carbon.AH} --- Apple Help}
+\declaremodule{standard}{Carbon.AH}
+  \platform{Mac}
+\modulesynopsis{Interface to the Apple Help manager.}
+
 
 \section{\module{Carbon.App} --- Appearance Manager}
 \declaremodule{standard}{Carbon.App}
@@ -48,11 +54,21 @@
   \platform{Mac}
 \modulesynopsis{Interface to the Core Foundation.}
 
-This module is only available under Carbon MacPython. The
+The
 \code{CFBase}, \code{CFArray}, \code{CFData}, \code{CFDictionary},
 \code{CFString} and \code{CFURL} objects are supported, some
 only partially.
 
+\section{\module{Carbon.CG} --- Core Graphics}
+\declaremodule{standard}{Carbon.CG}
+  \platform{Mac}
+\modulesynopsis{Interface to the Component Manager.}
+
+\section{\module{Carbon.CarbonEvt} --- Carbon Event Manager}
+\declaremodule{standard}{Carbon.CaronEvt}
+  \platform{Mac}
+\modulesynopsis{Interface to the Carbon Event Manager.}
+
 \section{\module{Carbon.Cm} --- Component Manager}
 \declaremodule{standard}{Carbon.Cm}
   \platform{Mac}
@@ -74,7 +90,7 @@
 \section{\module{Carbon.Evt} --- Event Manager}
 \declaremodule{standard}{Carbon.Evt}
   \platform{Mac}
-\modulesynopsis{Interface to the Event Manager.}
+\modulesynopsis{Interface to the classic Event Manager.}
 
 
 \section{\module{Carbon.Fm} --- Font Manager}
@@ -82,14 +98,16 @@
   \platform{Mac}
 \modulesynopsis{Interface to the Font Manager.}
 
+\section{\module{Carbon.Folder} --- Folder Manager}
+\declaremodule{standard}{Carbon.Folder}
+  \platform{Mac}
+\modulesynopsis{Interface to the Folder Manager.}
+
 
 \section{\module{Carbon.Help} --- Help Manager}
 \declaremodule{standard}{Carbon.Help}
   \platform{Mac}
-\modulesynopsis{Interface to the Balloon Help Manager.}
-
-This module is only available under MacOS9 and earlier in
-classic PPC MacPython.
+\modulesynopsis{Interface to the Carbon Help Manager.}
 
 \section{\module{Carbon.List} --- List Manager}
 \declaremodule{standard}{Carbon.List}
@@ -132,9 +150,10 @@
   \platform{Mac}
 \modulesynopsis{Interface to the Resource Manager and Handles.}
 
-
-\input{libscrap}
-
+\section{\module{Carbon.Scrap} --- Scrap Manager}
+\declaremodule{standard}{Carbon.Scrap}
+  \platform{Mac}
+\modulesynopsis{Interface to the Carbon Scrap Manager.}
 
 \section{\module{Carbon.Snd} --- Sound Manager}
 \declaremodule{standard}{Carbon.Snd}
diff --git a/Doc/mac/undoc.tex b/Doc/mac/undoc.tex
index 773208a..93c66d8 100644
--- a/Doc/mac/undoc.tex
+++ b/Doc/mac/undoc.tex
@@ -63,20 +63,6 @@
 codes.
 
 
-\section{\module{macfsn} --- NavServices calls}
-\declaremodule{standard}{macfsn}
-  \platform{Mac}
-\modulesynopsis{NavServices versions of StandardFile calls.}
-
-
-\module{macfsn} contains wrapper functions that have the same API as
-the \refmodule{macfs} StandardFile calls, but are implemented with
-Navigation Services through the
-\refmodule{Nav}\refbimodindex{Nav} module.  Importing it will replace
-the methods in \refmodule{macfs}\refbimodindex{macfs} with these, if
-Navigation Services is available on your machine.
-
-
 \section{\module{macresource} --- Locate script resources}
 \declaremodule{standard}{macresource}
   \platform{Mac}
@@ -93,15 +79,6 @@
 
 A low-level interface to Navigation Services. 
 
-
-\section{\module{mactty} --- Serial line connections}
-\declaremodule{standard}{mactty}
-  \platform{Mac}
-\modulesynopsis{Easy access serial to line connections.}
-
-This module is only available under Mac OS 9 or earlier in classic PPC
-MacPython.
-
 \section{\module{mkcwproject} --- Create CodeWarrior projects}
 \declaremodule{standard}{mkcwproject}
   \platform{Mac}
diff --git a/Doc/mac/using.tex b/Doc/mac/using.tex
index eaf2516..8fbbe68 100644
--- a/Doc/mac/using.tex
+++ b/Doc/mac/using.tex
@@ -1,15 +1,21 @@
-\chapter{Using Python on the Macintosh \label{using}}
+\chapter{Using Python on a Mac OS 9 Macintosh \label{using}}
 \sectionauthor{Bob Savage}{bobsavage@mac.com}
 
-Using Python on the Macintosh can seem like something completely
+Using Python on a Mac OS 9 Macintosh can seem like something completely
 different than using it on a \UNIX-like or Windows system. Most of the
 Python documentation, both the ``official'' documentation and
 published books, describe only how Python is used on these systems,
-causing confusion for the new user of MacPython. This chapter gives a
+causing confusion for the new user of MacPython-OS9. This chapter gives a
 brief introduction to the specifics of using Python on a Macintosh.
 
+Note that this chapter is mainly relevant to Mac OS 9: MacPython-OSX
+is a superset of a normal unix Python. While MacPython-OS9 runs fine
+on Mac OS X it is a better choice to use MacPython-OSX there.
 
-\section{Getting and Installing MacPython \label{getting}}
+The section on the IDE (see Section \ref{IDE}) is relevant to MacPython-OSX
+too.
+
+\section{Getting and Installing MacPython-OS9 \label{getting}}
 
 The most recent release version as well as possible newer experimental
 versions are best found at the MacPython page maintained by Jack
@@ -60,16 +66,6 @@
 section \ref{defaults}.
 
 \item
-After dropping the script onto the \program{PythonInterpreter}, a
-window appeared which said: ``File contains \code{\e r} characters
-(incorrect line endings?)''. That script probably originated on a
-\UNIX{} or Windows machine. You will need to change the line endings
-to the standard Mac usage.  One way to do this is to open the file in
-\program{BBedit}
-(\url{http://www.barebones.com/products/bbedit_lite.html}) which can
-easily change the line endings between Mac, DOS, and \UNIX\ styles.
-
-\item
 When you waved the script icon over the \program{PythonInterpreter},
 the \program{PythonInterpreter} icon did not hilight.  Most likely the
 Creator code and document type is unset (or set incorrectly) -- this
@@ -118,7 +114,7 @@
 \section{Simulating command line arguments
          \label{argv}}
 
-There are two ways to simulate command-line arguments with MacPython.
+There are two ways to simulate command-line arguments with MacPython-OS9.
  
 \begin{enumerate}
 \item via Interpreter options
@@ -362,13 +358,3 @@
  
 %\section{CGI on the Mac with Python \label{CGI}}
 %**NEED INFO HERE**
-
-\section{Mac OS X}
-
-At the time of this writing Mac OS X had just been released as a
-Public Beta. Efforts are under way to bring MacPython to Mac OS X. The
-MacPython release \version{1.5.2c1} runs quite well within the
-``Classic'' environment.  A ``Carbon'' port of the MacPython code is
-being prepared for release, and several people have made a command
-line version available to the ``Darwin'' layer (which is accessible
-via Terminal.app).
