diff --git a/include/ChangeLog b/include/ChangeLog
index 049942f4ee37291dad9c16e1bbff99f213e919a8..2ac7cecb71d397a09c39b3538181d05c9c96ac6a 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,8 @@
+2003-12-18  Kazu Hirata  <kazu@cs.umass.edu>
+
+	* include/fibheap.h (fibnode): Use unsigned long int for
+	bit-fields if __GNUC__ is defined.
+
 2003-10-22  Joseph S. Myers  <jsm@polyomino.org.uk>
 
 	* obstack.h: Merge the following change from gnulib:
diff --git a/include/fibheap.h b/include/fibheap.h
index fc37f9ef635eb91b1366a17218046286786f851c..addef19db95cd40d901fc494e913cda41c7cfc19 100644
--- a/include/fibheap.h
+++ b/include/fibheap.h
@@ -59,8 +59,13 @@ typedef struct fibnode
   struct fibnode *right;
   fibheapkey_t key;
   void *data;
+#ifdef __GNUC__
+  unsigned long int degree : 31;
+  unsigned long int mark : 1;
+#else
   unsigned int degree : 31;
   unsigned int mark : 1;
+#endif
 } *fibnode_t;
 
 extern fibheap_t fibheap_new PARAMS ((void));