diff --git a/Python/thread.c b/Python/thread.c
index ca2d6c6..016ccba 100644
--- a/Python/thread.c
+++ b/Python/thread.c
@@ -19,10 +19,6 @@
 #endif
 #endif
 
-#ifdef __DGUX
-#define _USING_POSIX4A_DRAFT6
-#endif
-
 #ifdef __sgi
 #ifndef HAVE_PTHREAD_H /* XXX Need to check in configure.in */
 #undef _POSIX_THREADS
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index cb03a9b..9e82ed0 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -55,10 +55,6 @@
 #    error Systems with PY_PTHREAD_D7 are unsupported. See README.
 #  endif
 
-#elif defined(__DGUX)
-#  define PY_PTHREAD_D6
-#  error Systems with PY_PTHREAD_D6 are unsupported. See README.
-
 #elif defined(__hpux) && defined(_DECTHREADS_)
 #  define PY_PTHREAD_D4
 #  error Systems with PY_PTHREAD_D4 are unsupported. See README.
@@ -80,7 +76,7 @@
 #if !defined(pthread_condattr_default)
 #  define pthread_condattr_default pthread_condattr_default
 #endif
-#elif defined(PY_PTHREAD_STD) || defined(PY_PTHREAD_D6)
+#elif defined(PY_PTHREAD_STD)
 #if !defined(pthread_attr_default)
 #  define pthread_attr_default ((pthread_attr_t *)NULL)
 #endif
@@ -211,10 +207,6 @@
 				 pthread_attr_default,
 				 (pthread_startroutine_t)func, 
 				 (pthread_addr_t)arg
-#elif defined(PY_PTHREAD_D6)
-				 pthread_attr_default,
-				 (void* (*)(void *))func,
-				 arg
 #elif defined(PY_PTHREAD_D7)
 				 pthread_attr_default,
 				 func,
@@ -239,7 +231,7 @@
 	if (status != 0)
             return -1;
 
-#if defined(PY_PTHREAD_D4) || defined(PY_PTHREAD_D6) || defined(PY_PTHREAD_D7)
+#if defined(PY_PTHREAD_D4) || defined(PY_PTHREAD_D7)
         pthread_detach(&th);
 #elif defined(PY_PTHREAD_STD)
         pthread_detach(th);
diff --git a/configure b/configure
index dd778fe..0589db7 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.442 .
+# From configure.in Revision: 1.443 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.57 for python 2.4.
 #
@@ -3010,7 +3010,7 @@
 
 # Check for unsupported systems
 case $ac_sys_system/$ac_sys_release in
-SunOS/4*|DYNIX/*|dgux*/*|IRIX/4*|Linux*/1*)
+SunOS/4*|DYNIX/*|IRIX/4*|Linux*/1*)
    echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
    echo See README for details.
    exit 1;;
@@ -3150,8 +3150,6 @@
 	       exp_extra="."
 	   fi
 	   LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
-	dgux*)
-	   LINKCC="LD_RUN_PATH=$libdir $LINKCC";;
 	Monterey64*)
 	   LINKCC="$LINKCC -L/usr/lib/ia64l64";;
 	esac
@@ -3241,13 +3239,6 @@
 	  RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
 	  ;;
   esac
-  # DG/UX requires some fancy ld contortions to produce a .so from an .a
-  case $MACHDEP in
-  dguxR4)
-        LDLIBRARY='libpython$(VERSION).so'
-        BASECFLAGS="$BASECFLAGS -pic"
-        ;;
-  esac
 else # shared is disabled
   case $ac_sys_system in
     CYGWIN*)
@@ -9422,7 +9413,6 @@
 			LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
 		fi ;;
 	Linux*|GNU*) LDSHARED='$(CC) -shared';;
-	dgux*) LDSHARED="ld -G";;
 	BSD/OS*/4*) LDSHARED="gcc -shared";;
 	OpenBSD*|FreeBSD*)
 		if [ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]
diff --git a/configure.in b/configure.in
index 2628806..602b864 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/*|dgux*/*|IRIX/4*|Linux*/1*)
+SunOS/4*|DYNIX/*|IRIX/4*|Linux*/1*)
    echo This system \($ac_sys_system/$ac_sys_release\) is no longer supported.
    echo See README for details.
    exit 1;;
@@ -457,8 +457,6 @@
 	       exp_extra="."
 	   fi
 	   LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp $exp_extra \$(LIBRARY); $LINKCC";;
-	dgux*)
-	   LINKCC="LD_RUN_PATH=$libdir $LINKCC";;
 	Monterey64*)
 	   LINKCC="$LINKCC -L/usr/lib/ia64l64";;
 	esac
@@ -537,13 +535,6 @@
 	  RUNSHARED=DLL_PATH=`pwd`:${DLL_PATH:-/atheos/sys/libs:/atheos/autolnk/lib}
 	  ;;
   esac
-  # DG/UX requires some fancy ld contortions to produce a .so from an .a
-  case $MACHDEP in
-  dguxR4)
-        LDLIBRARY='libpython$(VERSION).so'
-        BASECFLAGS="$BASECFLAGS -pic"
-        ;;
-  esac
 else # shared is disabled
   case $ac_sys_system in
     CYGWIN*)
@@ -1278,7 +1269,6 @@
 			LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
 		fi ;;
 	Linux*|GNU*) LDSHARED='$(CC) -shared';;
-	dgux*) LDSHARED="ld -G";;
 	BSD/OS*/4*) LDSHARED="gcc -shared";;
 	OpenBSD*|FreeBSD*)
 		if [[ "`$CC -dM -E - </dev/null | grep __ELF__`" != "" ]]
