--- regex_internal.h.~1.1.~	2005-11-01 10:18:32.000000000 +0100
+++ regex_internal.h	2006-01-06 06:57:54.000000000 +0100
@@ -182,6 +182,11 @@
 # if BITSET_WORD_BITS <= SBC_MAX
 #  error "Invalid SBC_MAX"
 # endif
+#elif BITSET_WORD_MAX == (0xffffffff + 2) * 0xffffffff
+/* Work around a bug in PGC GNU/Linux x86-64 5.2-1 and 6.0-8 (and
+   probably other versions), where the preprocessor mishandles large
+   unsigned values and thinks they are signed.  */
+# define BITSET_WORD_BITS 64
 #else
 # error "Add case for new bitset_word size"
 #endif
