diff --git a/Modules/Setup.guido b/Modules/Setup.guido
new file mode 100644
index 0000000..49859cd
--- /dev/null
+++ b/Modules/Setup.guido
@@ -0,0 +1,155 @@
+# This file is used by the makesetup script to construct Makefile.in
+# and config.c, from Makefile.in.in (sic!) and config.c.in,
+# respectively.
+#
+# Each line in this file describes one or more optional modules.
+# Comment out lines to suppress modules.
+# Lines have the following structure:
+#
+# <module> ... [<objectfile> ...] [<cpparg> ...] [<library> ...]
+#
+# <objectfile> is anything ending in .o
+# <cpparg> is anything starting with -I, -D, -U or -C
+# <library> is anything ending in .a or beginning with -l or -L
+# <module> is anything else but should be a valid Python
+# identifier (letters, digits, underscores, beginning with non-digit)
+#
+# Lines can also have the form
+#
+# <name> = <value>
+#
+# which defines a Make variable definition inserted into Makefile.in
+#
+# NOTE: As a standard policy, as many modules as can be supported by a
+# platform should be present.  The distribution comes with all modules
+# enabled that are supported by most platforms and don't require you
+# to ftp sources from elsewhere.  To make this easier for SGI
+# platforms, you can copy Setup.sgi to Setup (or edit Makefile.in.in
+# to use Setup.sgi instead of Setup).
+
+
+# Some special rules to define PYTHONPATH
+# Edit the definitions below to indicate which options you are using
+
+DESTDIR=/ufs/guido		# Edit this if needed
+DESTLIB=$(DESTDIR)/lib/python	# Don't edit this (usually)
+ARCHPATH=:$(DESTLIB)/sgi	# Enable this for SGI systems
+#ARCHPATH=:$(DESTLIB)/sun4	# Enable this for Sun systems
+STDWINPATH=:$(DESTLIB)/stdwin	# Enable this if stdwin installed
+
+PYTHONPATH=.:$(DESTLIB)$(ARCHPATH)$(STDWINPATH)
+
+
+# Modules that should always be present (non UNIX dependent)
+
+array arraymodule.o	# array objects
+math mathmodule.o	# math library functions, e.g. sin()
+parser parsermodule.o	# raw interface to the Python parser
+posix posixmodule.o	# posix (UNIX) system calls
+regex regexmodule.o regexpr.o	# Regular expressions, GNU Emacs style
+strop stropmodule.o	# fast string operations implemented in C
+struct structmodule.o	# binary structure packing/unpacking
+time timemodule.o	# time operations and variables
+
+
+# Modules with some UNIX dependencies -- on by default.
+# Note that some UNIX versions still don't support all of these
+# so you may have to comment them out before the build completes.
+
+dbm dbmmodule.o		# dbm(3) may require -ldbm or similar
+fcntl fcntlmodule.o	# fcntl(2) and ioctl(2)
+nis nismodule.o		# Sun yellow pages -- not everywhere
+pwd grp pwdmodule.o	# pwd(3) and grp(3)
+select selectmodule.o	# select(2); not on ancient System V
+socket socketmodule.o	# socket(2); not on ancient System V
+
+
+# Multimedia modules -- off by default
+# These represent audio samples or images as strings
+
+audioop audioopmodule.o # Operations on audio samples
+imageop imageopmodule.o # Operations on images
+rgbimg rgbimgmodule.o   # Read SGI RGB image files (but coded portably)
+
+
+# The stdwin module provides a simple, portable (between X11 and Mac)
+# windowing interface.  You need to ftp the STDWIN library, e.g. from
+# ftp://ftp.cwi.nl/pub/stdwin.  The STDWIN variable must point to the
+# STDWIN toplevel directory.  The ARCH variable must be set to the
+# architecture identifier used to build STDWIN.  NB if you combine this
+# with the gl module on an SGI machine, you should replace "-lX11" with
+# "-lX11_s".
+
+STDWIN=/ufs/guido/src/stdwin
+ARCH=sgi
+stdwin stdwinmodule.o -I$(STDWIN)/H $(STDWIN)/Build/$(ARCH)/x11/lib/lib.a -lX11_s
+
+
+# The md5 module implements the RSA Data Security, Inc. MD5
+# Message-Digest Algorithm, described in RFC 1321.  The necessary files
+# md5c.c and md5.h are included here.
+
+md5 md5module.o md5c.o
+
+
+# The mpz module interfaces to the GNU Multiple Precision library.
+# You need to ftp the GNU MP library.  This was last tested with a
+# somewhat modified (to get around bugs) version of GMP 1.2; it will
+# likely need some work for more recent versions.  The GMP variable
+# must point to the GMP source directory.
+
+GMP=/ufs/guido/src/gmp
+mpz mpzmodule.o -I$(GMP) $(GMP)/libgmp.a
+
+
+# The rotor module (contributed by Lance Ellinghouse) implements a
+# rotor-based encryption algorithm.  It is self-contained.
+
+rotor rotormodule.o
+
+
+# SGI IRIX specific modules -- off by default.
+# Switch this on if you have an SGI machine.
+# Note that some required libraries and header files aren't always
+# installed; you may be better off switching on only 'fm' and 'gl'
+# (Font Manager and Graphics Library).
+
+al almodule.o -laudio		# audio
+cd cdmodule.o -lcdaudio -lds	#
+cl clmodule.o -lcl
+fm fmmodule.o -lfm_s -lgl_s
+gl glmodule.o -lgl_s
+imgfile imgfilemodule.o -limage -lgutil -lm
+sgi sgimodule.o
+sv svmodule.o yuvconvert.o -lsvideo -lXext -lX11_s
+
+# The FORMS library, by Mark Overmars, implements user interface
+# components such as dialogs and buttons using SGI's GL and FM
+# libraries.  You must ftp the FORMS library separately from
+# ftp://ftp.cs.ruu.nl/pub/SGI/FORMS.  It was tested with FORMS 2.2a.
+# The FORMS variable must point to the FORMS subdirectory of the forms
+# toplevel directory.
+
+FORMS=/ufs/guido/src/forms/FORMS
+fl flmodule.o -I$(FORMS) $(FORMS)/libforms.a
+
+
+# SunOS specific modules -- off by default
+
+# sunaudiodev sunaudiodevmodule.o
+
+
+# Thread module -- works on SGI IRIX and on SunOS 5.x (SOLARIS) only.
+# Note that you must have configured (and built!) Python with the
+# --with-thread option passed to the configure script for this to work.
+
+thread threadmodule.o
+
+
+# GNN's timing module
+timing timingmodule.o
+
+
+# Example -- included for reference only
+
+# xx xxmodule.o
