Patch #618347: Work around Solaris 2.6 pthread.h bug. Will backport to 2.2.
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index 556445e..c9f6957 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -3,11 +3,11 @@
 
 #include <stdlib.h>
 #include <string.h>
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR)
 #define destructor xxdestructor
 #endif
 #include <pthread.h>
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(HAVE_PTHREAD_DESTRUCTOR)
 #undef destructor
 #endif
 #include <signal.h>
diff --git a/configure b/configure
index 9c995c3..181c983 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Revision: 1.348 .
+# From configure.in Revision: 1.349 .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.53.
 #
@@ -10885,6 +10885,17 @@
         OSF1) LDLAST=-threads;;
         esac
     fi
+
+    if test "$posix_threads" = yes -a \
+		"$ac_sys_system" = "SunOS" -a \
+		"$ac_sys_release" = "5.6"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_PTHREAD_DESTRUCTOR 1
+_ACEOF
+
+	fi
+
 fi
 
 # Check for enable-ipv6
diff --git a/configure.in b/configure.in
index 27462a6..fef6e22 100644
--- a/configure.in
+++ b/configure.in
@@ -1326,6 +1326,14 @@
         OSF1) LDLAST=-threads;;
         esac
     fi
+
+    if test "$posix_threads" = yes -a \
+		"$ac_sys_system" = "SunOS" -a \
+		"$ac_sys_release" = "5.6"; then
+		AC_DEFINE(HAVE_PTHREAD_DESTRUCTOR, 1,
+		[Defined for Solaris 2.6 bug in pthread header.])
+	fi
+
 fi
 
 # Check for enable-ipv6
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 3622be8..f5cc30e 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -304,6 +304,9 @@
 /* Define if you have GNU PTH threads. */
 #undef HAVE_PTH
 
+/* Defined for Solaris 2.6 bug in pthread header. */
+#undef HAVE_PTHREAD_DESTRUCTOR
+
 /* Define to 1 if you have the <pthread.h> header file. */
 #undef HAVE_PTHREAD_H