diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index d760b2f0d9847efb1bd4ac0d92f6e7243b052f58..90b431805cb7d1360ba35578f1bd679dca8eb03e 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2005-11-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	* libgfortran.h (ILP32 typedefs): Define _UINT8_T, _UINT32_T and
+	_UINT64_T on Solaris.
+
 2005-11-28  Steven G. Kargl  <kargls@comcast.net>
 
 	PR libgfortran/25149
diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h
index ba90fa8a6f7c4f1dc889df7dcbc65c1e398e1061..aacc7b8c8c5593303e6d46d62c9e7bf464c0a0e3 100644
--- a/libgfortran/libgfortran.h
+++ b/libgfortran/libgfortran.h
@@ -65,9 +65,24 @@ typedef short int16_t;
 typedef int int32_t;
 typedef long long int64_t;
 typedef unsigned char uint8_t;
+#if defined(__sun) && defined(__svr4__)
+/* Prevent <pthread.h> from redefining uint8_t on Solaris 2.5.1
+   FIXME when the header inclusion scheme is revisited.  */
+#define _UINT8_T
+#endif
 typedef unsigned short uint16_t;
 typedef unsigned int uint32_t;
+#if defined(__sun) && defined(__svr4__)
+/* Prevent <pthread.h> from redefining uint32_t on Solaris 2.5.1
+   FIXME when the header inclusion scheme is revisited.  */
+#define _UINT32_T
+#endif
 typedef unsigned long long uint64_t;
+#if defined(__sun) && defined(__svr4__)
+/* Prevent <pthread.h> from redefining uint64_t on Solaris 2.5.1
+   FIXME when the header inclusion scheme is revisited.  */
+#define _UINT64_T
+#endif
 #endif
 
 #if HAVE_SYS_TYPES_H