diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog
index d5fdc35ebfd3cc9e66a78f3fe57ebab32f0f55ec..045dcd3038b1aadc2e775a8bc13ac131287eb509 100644
--- a/libdecnumber/ChangeLog
+++ b/libdecnumber/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-06  Ben Elliston  <bje@au.ibm.com>
+
+	* decLibrary.c (__dec_byte_swap): Use uint32_t for argument and
+	return types.
+
 2006-01-03  Roger Sayle  <roger@eyesopen.com>
 	    Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
diff --git a/libdecnumber/decLibrary.c b/libdecnumber/decLibrary.c
index 1576f28555e255ceba5128af2d804b0bd587b020..19468ac892ea67a0050a863effc4d24e6c515311 100644
--- a/libdecnumber/decLibrary.c
+++ b/libdecnumber/decLibrary.c
@@ -1,5 +1,5 @@
 /* Temporary library support for decimal floating point.
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 
    This file is part of GCC.
 
@@ -81,13 +81,13 @@ __dfp_raise (int exception __attribute__ ((unused)))
   raise (SIGFPE);
 }
 
-unsigned long
-__dec_byte_swap (unsigned long in)
+uint32_t
+__dec_byte_swap (uint32_t in)
 {
-  unsigned long out;
+  uint32_t out = 0;
   unsigned char *p = (unsigned char *) &out;
   union {
-    unsigned long i;
+    uint32_t i;
     unsigned char b[4];
   } u;