Thanks for the bug report. How about this patch instead? It includes @FULL_PATH_STDINT_H@ first, before <sys/types.h>; this should be a bit safer than including @FULL_PATH_STDINT_H@ twice.
--- old/stdint_.h 2006-07-02 22:49:39.000000000 -0700 +++ new/stdint_.h 2006-07-03 01:39:23.000000000 -0700 @@ -32,15 +32,6 @@ for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ -/* <sys/types.h> defines some of the stdint.h types as well, on glibc, - IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). */ -#if @HAVE_SYS_TYPES_H@ -# include <sys/types.h> -#endif - -/* Get LONG_MIN, LONG_MAX, ULONG_MAX. */ -#include <limits.h> - #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users @@ -55,6 +46,17 @@ # include @FULL_PATH_STDINT_H@ #endif +/* <sys/types.h> defines some of the stdint.h types as well, on glibc, + IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>). + MacOS X 10.4.6 <sys/types.h> includes <stdint.h>, and relies on its + definitions, so include <sys/types.h> after @[EMAIL PROTECTED] */ +#if @HAVE_SYS_TYPES_H@ +# include <sys/types.h> +#endif + +/* Get LONG_MIN, LONG_MAX, ULONG_MAX. */ +#include <limits.h> + #if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.