diff --git a/PC/pyconfig.h b/PC/pyconfig.h
index aa4f170..4bfcdbd 100644
--- a/PC/pyconfig.h
+++ b/PC/pyconfig.h
@@ -369,24 +369,6 @@
    (which you can't on SCO ODT 3.0). */
 /* #undef SYS_SELECT_WITH_SYS_TIME */
 
-/* Define if you want to use SGI (IRIX 4) dynamic linking.
-   This requires the "dl" library by Jack Jansen,
-   ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
-   Don't bother on IRIX 5, it already has dynamic linking using SunOS
-   style shared libraries */
-/* #undef WITH_SGI_DL */
-
-/* Define if you want to emulate SGI (IRIX 4) dynamic linking.
-   This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
-   Sequent Symmetry (Dynix), and Atari ST.
-   This requires the "dl-dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
-   as well as the "GNU dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
-   Don't bother on SunOS 4 or 5, they already have dynamic linking using
-   shared libraries */
-/* #undef WITH_DL_DLD */
-
 /* Define if you want documentation strings in extension modules */
 #define WITH_DOC_STRINGS 1
 
diff --git a/Python/thread_sgi.h b/Python/thread_sgi.h
index e246538..2346658 100644
--- a/Python/thread_sgi.h
+++ b/Python/thread_sgi.h
@@ -1,8 +1,4 @@
 
-#ifdef WITH_SGI_DL
-#define USE_DL
-#endif
-
 #include <stdlib.h>
 #include <stdio.h>
 #include <signal.h>
diff --git a/RISCOS/pyconfig.h b/RISCOS/pyconfig.h
index c00def2..fbd8ebc 100644
--- a/RISCOS/pyconfig.h
+++ b/RISCOS/pyconfig.h
@@ -230,17 +230,6 @@
    one supplied by Python itself. (see Include/unicodectype.h). */
 #undef WANT_WCTYPE_FUNCTIONS
 
-/* Define if you want to emulate SGI (IRIX 4) dynamic linking.
-   This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
-   Sequent Symmetry (Dynix), and Atari ST.
-   This requires the "dl-dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
-   as well as the "GNU dld" library,
-   ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
-   Don't bother on SunOS 4 or 5, they already have dynamic linking using
-   shared libraries */ 
-#undef WITH_DL_DLD
-
 /* Define if you want to read files with foreign newlines. */
 #define WITH_UNIVERSAL_NEWLINES 1
 
@@ -262,13 +251,6 @@
 /* Define if you want to use MacPython modules on MacOSX in unix-Python */
 #undef USE_TOOLBOX_OBJECT_GLUE
 
-/* Define if you want to use SGI (IRIX 4) dynamic linking.
-   This requires the "dl" library by Jack Jansen,
-   ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
-   Don't bother on IRIX 5, it already has dynamic linking using SunOS
-   style shared libraries */ 
-#undef WITH_SGI_DL
-
 /* Define if you want to compile in rudimentary thread support */
 #undef WITH_THREAD
 
diff --git a/configure b/configure
index 33eacde..f1a46c7 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.444 .
+# From configure.in Revision: 1.445 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.57 for python 2.4.
 #
@@ -871,8 +871,6 @@
   --with(out)-doc-strings disable/enable documentation strings
   --with(out)-pymalloc    disable/enable specialized mallocs
   --with-wctype-functions use wctype.h functions
-  --with-sgi-dl=DIRECTORY IRIX 4 dynamic linking
-  --with-dl-dld=DL_DIR    GNU dynamic linking
   --with-fpectl           enable SIGFPE catching
   --with-libm=STRING      math library
   --with-libc=STRING      C library
@@ -3010,7 +3008,7 @@
 
 # Check for unsupported systems
 case $ac_sys_system/$ac_sys_release in
-SunOS/4*|DYNIX/*|IRIX/4*|Linux*/1*)
+SunOS/4*|Linux*/1*)
    echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
    echo See README for details.
    exit 1;;
@@ -9390,7 +9388,6 @@
 		fi ;;
 	hp*|HP*) LDSHARED="ld -b";;
 	OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
-	DYNIX/ptx*) LDSHARED="ld -G";;
 	Darwin/1.3*)
 		LDSHARED='$(CC) $(LDFLAGS) -bundle'
 		if test "$enable_framework" ; then
@@ -9923,11 +9920,7 @@
 esac
 
 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
-# However on SGI IRIX 4, these exist but are broken.
 # BeOS' sockets are stashed in libnet.
-case "$ac_sys_system" in
-IRIX*) ;;
-*)
 echo "$as_me:$LINENO: checking for t_open in -lnsl" >&5
 echo $ECHO_N "checking for t_open in -lnsl... $ECHO_C" >&6
 if test "${ac_cv_lib_nsl_t_open+set}" = set; then
@@ -10044,8 +10037,7 @@
   LIBS="-lsocket $LIBS"
 fi
  # SVR4 sockets
-;;
-esac
+
 case "$ac_sys_system" in
 BeOS*)
 echo "$as_me:$LINENO: checking for socket in -lnet" >&5
@@ -12071,69 +12063,6 @@
 
 DLINCLDIR=.
 
-echo "$as_me:$LINENO: checking for --with-sgi-dl" >&5
-echo $ECHO_N "checking for --with-sgi-dl... $ECHO_C" >&6
-
-# Check whether --with-sgi-dl or --without-sgi-dl was given.
-if test "${with_sgi_dl+set}" = set; then
-  withval="$with_sgi_dl"
-
-echo "$as_me:$LINENO: result: $withval" >&5
-echo "${ECHO_T}$withval" >&6
-echo --with-sgi-dl is unsupported, see README
-exit 1
-
-cat >>confdefs.h <<\_ACEOF
-#define WITH_SGI_DL 1
-_ACEOF
-
-DYNLOADFILE="dynload_dl.o"
-dldir=$withval
-if test ! -z "$dldir" -a -d "$dldir"
-then LDFLAGS="$LDFLAGS -L$dldir"
-else { { echo "$as_me:$LINENO: error: proper usage is --with-sgi-dl=DIRECTORY" >&5
-echo "$as_me: error: proper usage is --with-sgi-dl=DIRECTORY" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-DLINCLDIR=${dldir}
-LIBS="$LIBS -ldl -lmld"
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi;
-
-echo "$as_me:$LINENO: checking for --with-dl-dld" >&5
-echo $ECHO_N "checking for --with-dl-dld... $ECHO_C" >&6
-
-# Check whether --with-dl-dld or --without-dl-dld was given.
-if test "${with_dl_dld+set}" = set; then
-  withval="$with_dl_dld"
-
-echo "$as_me:$LINENO: result: $withval" >&5
-echo "${ECHO_T}$withval" >&6
-echo --with-dl-dld is unsupported, see README
-exit 1
-
-cat >>confdefs.h <<\_ACEOF
-#define WITH_DL_DLD 1
-_ACEOF
-
-DYNLOADFILE="dynload_dl.o"
-dldir=`echo "$withval" | sed 's/,.*//'`
-dlddir=`echo "$withval" | sed 's/.*,//'`
-if test ! -z "$dldir" -a -d "$dldir" -a ! -z "$dlddir" -a -d "$dlddir"
-then LDFLAGS="$LDFLAGS -L$dldir -L$dlddir"
-else { { echo "$as_me:$LINENO: error: proper usage is --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY" >&5
-echo "$as_me: error: proper usage is --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-DLINCLDIR=${dldir}
-LIBS="$LIBS -ldl -ldld"
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi;
-
 # the dlopen() function means we might want to use dynload_shlib.o. some
 # platforms, such as AIX, have dlopen(), but don't want to use it.
 
diff --git a/configure.in b/configure.in
index 412befb..31805c1 100644
--- a/configure.in
+++ b/configure.in
@@ -332,7 +332,7 @@
 
 # Check for unsupported systems
 case $ac_sys_system/$ac_sys_release in
-SunOS/4*|DYNIX/*|IRIX/4*|Linux*/1*)
+SunOS/4*|Linux*/1*)
    echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
    echo See README for details.
    exit 1;;
@@ -1246,7 +1246,6 @@
 		fi ;;
 	hp*|HP*) LDSHARED="ld -b";;
 	OSF*) LDSHARED="ld -shared -expect_unresolved \"*\"";;
-	DYNIX/ptx*) LDSHARED="ld -G";;
 	Darwin/1.3*)
 		LDSHARED='$(CC) $(LDFLAGS) -bundle'
 		if test "$enable_framework" ; then
@@ -1443,15 +1442,10 @@
 esac
 
 # Most SVR4 platforms (e.g. Solaris) need -lsocket and -lnsl.
-# However on SGI IRIX 4, these exist but are broken.
 # BeOS' sockets are stashed in libnet.
-case "$ac_sys_system" in
-IRIX*) ;;
-*)
 AC_CHECK_LIB(nsl, t_open, [LIBS="-lnsl $LIBS"]) # SVR4
 AC_CHECK_LIB(socket, socket, [LIBS="-lsocket $LIBS"], [], $LIBS) # SVR4 sockets
-;;
-esac
+
 case "$ac_sys_system" in
 BeOS*)
 AC_CHECK_LIB(net, socket, [LIBS="-lnet $LIBS"], [], $LIBS) # BeOS
@@ -1958,55 +1952,6 @@
 AC_SUBST(DLINCLDIR)
 DLINCLDIR=.
 
-AC_MSG_CHECKING(for --with-sgi-dl)
-AC_ARG_WITH(sgi-dl,
-            AC_HELP_STRING(--with-sgi-dl=DIRECTORY, IRIX 4 dynamic linking),
-[
-AC_MSG_RESULT($withval)
-echo --with-sgi-dl is unsupported, see README
-exit 1
-AC_DEFINE(WITH_SGI_DL, 1,
-  [Define if you want to use SGI (IRIX 4) dynamic linking.
-   This requires the "dl" library by Jack Jansen,
-   ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z.
-   Do not bother on IRIX 5, it already has dynamic linking using SunOS
-   style shared libraries])
-DYNLOADFILE="dynload_dl.o"
-dldir=$withval
-if test ! -z "$dldir" -a -d "$dldir"
-then LDFLAGS="$LDFLAGS -L$dldir"
-else AC_MSG_ERROR([proper usage is --with-sgi-dl=DIRECTORY])
-fi
-DLINCLDIR=${dldir}
-LIBS="$LIBS -ldl -lmld"], AC_MSG_RESULT(no))
-
-AC_MSG_CHECKING(for --with-dl-dld)
-AC_ARG_WITH(dl-dld,
-            AC_HELP_STRING(--with-dl-dld=DL_DIR, GNU dynamic linking),
-[
-AC_MSG_RESULT($withval)
-echo --with-dl-dld is unsupported, see README
-exit 1
-AC_DEFINE(WITH_DL_DLD, 1, 
-  [Define if you want to emulate SGI (IRIX 4) dynamic linking.
-   This is rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4),
-   Sequent Symmetry (Dynix), and Atari ST.
-   This requires the 'dl-dld' library,
-   ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z,
-   as well as the 'GNU dld' library,
-   ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z.
-   Do not bother on SunOS 4 or 5, they already have dynamic linking using
-   shared libraries.])
-DYNLOADFILE="dynload_dl.o"
-dldir=`echo "$withval" | sed 's/,.*//'`
-dlddir=`echo "$withval" | sed 's/.*,//'`
-if test ! -z "$dldir" -a -d "$dldir" -a ! -z "$dlddir" -a -d "$dlddir"
-then LDFLAGS="$LDFLAGS -L$dldir -L$dlddir"
-else AC_MSG_ERROR([proper usage is --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY])
-fi
-DLINCLDIR=${dldir}
-LIBS="$LIBS -ldl -ldld"], AC_MSG_RESULT(no))
-
 # the dlopen() function means we might want to use dynload_shlib.o. some
 # platforms, such as AIX, have dlopen(), but don't want to use it.
 AC_CHECK_FUNCS(dlopen)
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 9e3fb7b..41de4e1 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -772,14 +772,6 @@
 /* Define if WINDOW in curses.h offers a field _flags. */
 #undef WINDOW_HAS_FLAGS
 
-/* Define if you want to emulate SGI (IRIX 4) dynamic linking. This is
-   rumoured to work on VAX (Ultrix), Sun3 (SunOS 3.4), Sequent Symmetry
-   (Dynix), and Atari ST. This requires the 'dl-dld' library,
-   ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z, as well as the 'GNU dld'
-   library, ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z. Do not bother on
-   SunOS 4 or 5, they already have dynamic linking using shared libraries. */
-#undef WITH_DL_DLD
-
 /* Define if you want documentation strings in extension modules */
 #undef WITH_DOC_STRINGS
 
@@ -798,12 +790,6 @@
 /* Define if you want to compile in Python-specific mallocs */
 #undef WITH_PYMALLOC
 
-/* Define if you want to use SGI (IRIX 4) dynamic linking. This requires the
-   "dl" library by Jack Jansen, ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z. Do
-   not bother on IRIX 5, it already has dynamic linking using SunOS style
-   shared libraries */
-#undef WITH_SGI_DL
-
 /* Define if you want to compile in rudimentary thread support */
 #undef WITH_THREAD
 
