diff --git a/Mac/README b/Mac/README
index 5e74d7b..c4f6b65 100644
--- a/Mac/README
+++ b/Mac/README
@@ -5,6 +5,39 @@
 This document provides a quick overview of some Mac OS X specific features in
 the Python distribution.
 
+Mac-specific arguments to configure
+===================================
+
+* ``--enable-framework``
+
+  If this argument is specified the build will create a Python.framework rather
+  than a traditional Unix install. See the section
+  _`Building and using a framework-based Python on Mac OS X` for more 
+  information on frameworks.
+
+* ``--with-framework-name=NAME``
+
+  Specify the name for the python framework, defaults to ``Python``. This option
+  is only valid when ``--enable-framework`` is specified.
+
+* ``--enable-universalsdk[=PATH]``
+
+  Create a universal binary build of of Python. This can be used with both
+  regular and framework builds.
+
+  The optional argument specifies with OSX SDK should be used to perform the
+  build. This defaults to ``/Developer/SDKs/MacOSX.10.4u.sdk``, specify 
+  ``/`` when building on a 10.5 system, especially when building 64-bit code.
+
+  See the section _`Building and using a universal binary of Python on Mac OS X`
+  for more information.
+
+* ``--with-univeral-archs=VALUE``
+
+  Specify the kind of universal binary that should be created. This option is 
+  only valid when ``--enable-universalsdk`` is specified.
+
+  
 
 Building and using a universal binary of Python on Mac OS X
 ===========================================================
@@ -31,6 +64,34 @@
 with Xcode 2.1 (or later). You also have to install the 10.4u SDK when 
 installing Xcode.
 
+The option ``--enable-universalsdk`` has an optional argument to specify an
+SDK, which defaults to the 10.4u SDK. When you build on OSX 10.5 or later 
+you can use the system headers instead of an SDK::
+
+  $ ./configure --enable-universalsdk=/
+
+2.1 Flavours of universal binaries
+..................................
+
+It is possible to build a number of flavours of the universal binary build,
+the default is a 32-bit only binary (i386 and ppc). The flavour can be
+specified using the option ``--with-universal-archs=VALUE``. The following
+values are available:
+
+  * ``32-bit``:   ``ppc``, ``i386``
+
+  * ``64-bit``:   ``ppc64``, ``x86_64``
+
+  * ``all``:      ``ppc``, ``ppc64``, ``i386``, ``x86_64``
+
+  * ``3-way``:	  ``ppc``, ``i386`` and ``x86_64``
+
+  * ``intel``:	  ``i386``, ``x86_64``
+
+To build a universal binary that includes a 64-bit architecture you must build
+on a system running OSX 10.5 or later. The ``all`` flavour can only be build on
+OSX 10.5.
+
 
 Building and using a framework-based Python on Mac OS X.
 ========================================================
@@ -81,18 +142,20 @@
 the relevant portions of the Mac subtree into the Python.framework.
 
 It is normally invoked indirectly through the main Makefile, as the last step
-in the sequence
+in the sequence::
 
- 1. ./configure --enable-framework
-
- 2. make
- 
- 3. make install
+ $ ./configure --enable-framework
+ $ make
+ $ make install
 
 This sequence will put the framework in /Library/Framework/Python.framework,
 the applications in "/Applications/MacPython 2.6" and the unix tools in 
 /usr/local/bin.
 
+It is possible to select a different name for the framework using the configure 
+option ``--with-framework-name=NAME``. This makes it possible to have several
+parallel installs of a Python framework.
+
 Installing in another place, for instance $HOME/Library/Frameworks if you have
 no admin privileges on your machine, has only been tested very lightly. This
 can be done by configuring with --enable-framework=$HOME/Library/Frameworks.
@@ -101,14 +164,6 @@
 which you would want in $HOME/bin, but there is no easy way to fix this right 
 now.
 
-If you want to install some part, but not all, read the main Makefile. The
-frameworkinstall is composed of a couple of sub-targets that install the
-framework itself, the Mac subtree, the applications and the unix tools.
-
-There is an extra target frameworkinstallextras that is not part of the
-normal frameworkinstall which installs the Demo and Tools directories
-into "/Applications/MacPython 2.6", this is useful for binary distributions.
-
 What do all these programs do?
 ===============================
 
diff --git a/configure b/configure
index aeae2e7..82f60be 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 74715 .
+# From configure.in Revision: 74978 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for python 2.7.
 #
@@ -1923,6 +1923,13 @@
 	{ echo "$as_me:$LINENO: result: $withval" >&5
 echo "${ECHO_T}$withval" >&6; }
 	UNIVERSAL_ARCHS="$withval"
+        if test "${enable_universalsdk}" ; then
+		:
+	else
+		{ { echo "$as_me:$LINENO: error: --with-universal-archs without --enable-universalsdk. See Mac/README" >&5
+echo "$as_me: error: --with-universal-archs without --enable-universalsdk. See Mac/README" >&2;}
+   { (exit 1); exit 1; }; }
+	fi
 
 else
 
@@ -1938,6 +1945,13 @@
 # Check whether --with-framework-name was given.
 if test "${with_framework_name+set}" = set; then
   withval=$with_framework_name;
+    if test "${enable_framework}"; then
+	    :
+    else
+	{ { echo "$as_me:$LINENO: error: --with-framework-name without --enable-framework. See Mac/README" >&5
+echo "$as_me: error: --with-framework-name without --enable-framework. See Mac/README" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
     PYTHONFRAMEWORK=${withval}
     PYTHONFRAMEWORKDIR=${withval}.framework
     PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr 'A-Z' 'a-z'`
@@ -14612,8 +14626,8 @@
 echo "${ECHO_T}yes" >&6; }
 	if test $enable_shared = "yes"
 	then
-		{ { echo "$as_me:$LINENO: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead" >&5
-echo "$as_me: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead" >&2;}
+		{ { echo "$as_me:$LINENO: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead. See Mac/README." >&5
+echo "$as_me: error: Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead. See Mac/README." >&2;}
    { (exit 1); exit 1; }; }
 	fi
 else
diff --git a/configure.in b/configure.in
index 4c4731f..4713d57 100644
--- a/configure.in
+++ b/configure.in
@@ -118,6 +118,11 @@
 [
 	AC_MSG_RESULT($withval)
 	UNIVERSAL_ARCHS="$withval"
+        if test "${enable_universalsdk}" ; then
+		:
+	else
+		AC_MSG_ERROR([--with-universal-archs without --enable-universalsdk. See Mac/README])
+	fi
 ],
 [
  	AC_MSG_RESULT(32-bit)
@@ -129,6 +134,11 @@
               AC_HELP_STRING(--with-framework-name=FRAMEWORK, 
                              specify an alternate name of the framework built with --enable-framework),
 [
+    if test "${enable_framework}"; then
+	    :
+    else
+	AC_MSG_ERROR([--with-framework-name without --enable-framework. See Mac/README])
+    fi
     PYTHONFRAMEWORK=${withval}
     PYTHONFRAMEWORKDIR=${withval}.framework
     PYTHONFRAMEWORKIDENTIFIER=org.python.`echo $withval | tr '[A-Z]' '[a-z]'`
@@ -1615,7 +1625,7 @@
 	AC_MSG_RESULT(yes)
 	if test $enable_shared = "yes"
 	then
-		AC_MSG_ERROR([Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead])
+		AC_MSG_ERROR([Specifying both --enable-shared and --enable-framework is not supported, use only --enable-framework instead. See Mac/README.])
 	fi
 else
 	AC_MSG_RESULT(no)
