diff -rduNp Python-2.4.2-002/setup.py Python-2.4.2/setup.py
--- Python-2.4.2-002/setup.py	2007-01-22 19:41:47.000000000 +0100
+++ Python-2.4.2/setup.py	2007-01-22 19:47:25.000000000 +0100
@@ -15,7 +15,14 @@ from distutils.command.install import in
 from distutils.command.install_lib import install_lib
 
 # This global variable is used to hold the list of modules to be disabled.
-disabled_module_list = []
+try:
+	disabled_module_list = os.environ["PYTHON_DISABLE_MODULES"].split()
+except KeyError:
+	disabled_module_list = []
+try:
+	disable_ssl = os.environ["PYTHON_DISABLE_SSL"]
+except KeyError:
+	disable_ssl = 0
 
 def add_dir_to_list(dirlist, dir):
     """Add the directory 'dir' to the list 'dirlist' (at the front) if
@@ -247,6 +254,7 @@ class PyBuildExt(build_ext):
         return sys.platform
 
     def detect_modules(self):
+        global disable_ssl
         try:
             modules_include_dirs = os.environ["PYTHON_MODULES_INCLUDE"].split()
         except KeyError:
@@ -468,7 +476,8 @@ class PyBuildExt(build_ext):
                                      ] )
 
         if (ssl_incs is not None and
-            ssl_libs is not None):
+            ssl_libs is not None and
+			not disable_ssl):
             exts.append( Extension('_ssl', ['_ssl.c'],
                                    include_dirs = ssl_incs,
                                    library_dirs = ssl_libs,
