diff --git a/Doc/Makefile b/Doc/Makefile
index 31670ad..cdc97a3 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -14,20 +14,27 @@
 ALLSPHINXOPTS = -b $(BUILDER) -d build/doctrees -D latex_paper_size=$(PAPER) \
                 $(SPHINXOPTS) . build/$(BUILDER) $(SOURCES)
 
-.PHONY: help checkout update build html htmlhelp clean coverage dist check
+.PHONY: help checkout update build html htmlhelp latex text changes linkcheck \
+	suspicious coverage doctest pydoc-topics htmlview clean dist check serve \
+	autobuild-dev autobuild-stable
 
 help:
 	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html      to make standalone HTML files"
-	@echo "  htmlhelp  to make HTML files and a HTML help project"
-	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
-	@echo "  text      to make plain text files"
-	@echo "  changes   to make an overview over all changed/added/deprecated items"
-	@echo "  linkcheck to check all external links for integrity"
+	@echo "  clean      to remove build files"
+	@echo "  update     to update build tools"
+	@echo "  html       to make standalone HTML files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  text       to make plain text files"
+	@echo "  changes    to make an overview over all changed/added/deprecated items"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  coverage   to check documentation coverage for library and C API"
+	@echo "  doctest    to run doctests in the documentation"
+	@echo "  pydoc-topics  to regenerate the pydoc topics file"
+	@echo "  dist       to create a \"dist\" directory with archived docs for download"
 	@echo "  suspicious to check for suspicious markup in output text"
-	@echo "  coverage  to check documentation coverage for library and C API"
-	@echo "  dist      to create a \"dist\" directory with archived docs for download"
-	@echo "  serve     to serve the documentation on the localhost (8000)"
+	@echo "  check      to run a check for frequent markup errors"
+	@echo "  serve      to serve the documentation on the localhost (8000)"
 
 # Note: if you update versions here, do the same in make.bat and README.txt
 checkout:
@@ -153,3 +160,17 @@
 
 serve:
 	../Tools/scripts/serve.py build/html
+
+# Targets for automatic doc build
+
+# for development releases: always build
+autobuild-dev:
+	make update
+	make dist
+
+# for stable releases: only build if not in development mode
+autobuild-stable:
+	@case $(DISTVERSION) in *[abc]*) \
+		echo "Not building; not a release version.";  exit 1;; \
+	esac
+	@make autobuild-dev
diff --git a/Doc/tools/dailybuild.py b/Doc/tools/dailybuild.py
new file mode 100755
index 0000000..6291d90
--- /dev/null
+++ b/Doc/tools/dailybuild.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Runs the daily build of the Python docs on dinsdale.python.org.
+#
+# Usages:
+#
+#   dailybuild.py
+#
+# without any arguments builds docs for all branches configured in the global
+# BRANCHES value.
+#
+#   dailybuild.py [-d] <checkout> <target>
+#
+# builds one version, where <checkout> is an SVN checkout directory of the
+# Python branch to build docs for, and <target> is the directory where the
+# result should be placed.  If -d is given, the docs are built even if the
+# branch is in development mode (i.e. version contains a, b or c).
+#
+# This script is not run from the checkout, so if you want to change how the
+# daily build is run, you must replace it on dinsdale.  This is necessary, for
+# example, after the release of a new minor version.
+#
+# 03/2010, Georg Brandl
+
+import os
+import sys
+import getopt
+
+
+BUILDROOT = '/home/gbrandl/docbuild'
+WWWROOT = '/data/ftp.python.org/pub/docs.python.org'
+
+BRANCHES = [
+    # checkout, target, isdev
+    (BUILDROOT + '/python26', WWWROOT, False),
+    (BUILDROOT + '/python31', WWWROOT + '/py3k', False),
+    (BUILDROOT + '/python27', WWWROOT + '/dev', True),
+    (BUILDROOT + '/python32', WWWROOT + '/dev/py3k', True),
+]
+
+
+def build_one(checkout, target, isdev):
+    print 'Doc autobuild started in %s' % checkout
+    os.chdir(checkout)
+    print 'Running svn update'
+    os.system('svn update')
+    print 'Running make autobuild'
+    if os.WEXITSTATUS(os.system(
+        'cd Doc; make autobuild-%s' % (isdev and 'dev' or 'stable'))) == 2:
+        print '*' * 80
+        return
+    print 'Copying HTML files'
+    os.system('cp -a Doc/build/html/* %s' % target)
+    print 'Copying dist files'
+    os.system('cp -a Doc/dist %s/dist' % target)
+    print 'Finished'
+    print '=' * 80
+
+def usage():
+    print 'Usage:'
+    print '  %s' % sys.argv[0]
+    print 'or'
+    print '  %s [-d] <checkout> <target>' % sys.argv[0]
+    sys.exit(1)
+
+
+if __name__ == '__main__':
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], 'd')
+    except getopt.error:
+        usage()
+    if opts and not args:
+        usage()
+    if args:
+        if len(args) != 2:
+            usage()
+        build_one(args[0], args[1], bool(opts))
+    else:
+        for branch in BRANCHES:
+            build_one(*branch)
