diff --git a/Tools/scripts/README b/Tools/scripts/README
index b1c167e..f664f21 100644
--- a/Tools/scripts/README
+++ b/Tools/scripts/README
@@ -56,6 +56,7 @@
 redemo.py		Basic regular expression demonstration facility
 reindent.py		Change .py files to use 4-space indents.
 rgrep.py		Reverse grep through a file (useful for big logfiles)
+serve.py		Small wsgiref-based web server, used in make serve in Doc
 setup.py		Install all scripts listed here
 suff.py			Sort a list of files by suffix
 svneol.py		Sets svn:eol-style on all files in directory
diff --git a/Tools/scripts/serve.py b/Tools/scripts/serve.py
new file mode 100755
index 0000000..61de63d
--- /dev/null
+++ b/Tools/scripts/serve.py
@@ -0,0 +1,31 @@
+#!/usr/bin/env python
+'''
+Small wsgiref based web server. Takes a path to serve from and an
+optional port number (defaults to 8000), then tries to serve files.
+Mime types are guessed from the file names, 404 errors are thrown
+if the file is not found. Used for the make serve target in Doc.
+'''
+import sys
+import os
+import mimetypes
+from wsgiref import simple_server, util
+
+def app(environ, respond):
+
+    fn = os.path.join(path, environ['PATH_INFO'][1:])
+    if '.' not in fn.split(os.path.sep)[-1]:
+        fn = os.path.join(fn, 'index.html')
+    type = mimetypes.guess_type(fn)[0]
+
+    if os.path.exists(fn):
+        respond('200 OK', [('Content-Type', type)])
+        return util.FileWrapper(open(fn))
+    else:
+        respond('404 Not Found', [('Content-Type', 'text/plain')])
+        return ['not found']
+
+if __name__ == '__main__':
+    path = sys.argv[1]
+    port = int(sys.argv[2]) if len(sys.argv) > 2 else 8000
+    httpd = simple_server.make_server('', port, app)
+    httpd.serve_forever()
