diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fa5059e25e8d888fb09bb0ea796f5cb5004aaa07..05ea4bda4a84ad249c8974e9fc0d054bf7beb91a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2008-09-04  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* acinclude.m4 ([GLIBCXX_CHECK_GTHREADS]): Tidy checks in case of
+	POSIX threads.
+	* configure: Regenerate.
+
 2008-09-04  Chris Fairles  <chris.fairles@gmail.com>
 
         * include/std/mutex (once_flag): Construct __gthread_once_t in a
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index aba378693df7870cf6309644875f4872adfd904e..b334657042d5183a7e43941a9a96a077874ba8bb 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -2843,10 +2843,15 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [
 
   AC_TRY_COMPILE([#include "gthr.h"],
     [
-     	#if (!defined(__GTHREADS_CXX0X) || !defined(_POSIX_TIMEOUTS) \
-	     || _POSIX_TIMEOUTS <= 0)
-	#error
-	#endif
+      #ifndef __GTHREADS_CXX0X
+      #error
+      #endif
+
+      // In case of POSIX threads check _POSIX_TIMEOUTS too.
+      #if (defined(_PTHREADS) \
+           && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0))
+      #error
+      #endif
     ], [ac_has_gthreads=yes], [ac_has_gthreads=no])
 
   AC_MSG_RESULT([$ac_has_gthreads])
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index b1470c7cf78da5a4b585f553fa0e8043272fbdb2..a6223e7a40df8b42eed1fd397feaddcb1362014a 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -21610,10 +21610,15 @@ int
 main ()
 {
 
-     	#if (!defined(__GTHREADS_CXX0X) || !defined(_POSIX_TIMEOUTS) \
-	     || _POSIX_TIMEOUTS <= 0)
-	#error
-	#endif
+      #ifndef __GTHREADS_CXX0X
+      #error
+      #endif
+
+      // In case of POSIX threads check _POSIX_TIMEOUTS too.
+      #if (defined(_PTHREADS) \
+           && (!defined(_POSIX_TIMEOUTS) || _POSIX_TIMEOUTS <= 0))
+      #error
+      #endif
 
   ;
   return 0;