diff --git a/gas/ChangeLog b/gas/ChangeLog
index d49e15cfd0f..8824fe5356c 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2001-02-08  Alan Modra   <alan@linuxcare.com.au>
+
+	* config/tc-hppa.c (pa_build_unwind_subspace): Don't call
+	md_number_to_chars with size > sizeof (valueT).
+
 2001-02-06  H.J. Lu  <hjl@gnu.org>
 
 	* config/tc-ia64.h (TC_RELOC_RTSYM_LOC_FIXUP): Do fixup if
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index 1b3a4efc850..e2905ecce47 100644
--- a/gas/config/tc-hppa.c
+++ b/gas/config/tc-hppa.c
@@ -6108,9 +6108,9 @@ pa_build_unwind_subspace (call_info)
   /* Get some space to hold relocation information for the unwind
      descriptor.  */
   p = frag_more (16);
-  md_number_to_chars (p, 0, 8);
 
   /* Relocation info. for start offset of the function.  */
+  md_number_to_chars (p, 0, 4);
   fix_new_hppa (frag_now, p - frag_now->fr_literal, 4,
 		call_info->start_symbol, (offsetT) 0,
 		(expressionS *) NULL, 0, reloc,
@@ -6123,7 +6123,7 @@ pa_build_unwind_subspace (call_info)
      symbol into the symbol table.  It (should) end up giving the same
      value as call_info->start_symbol + function size once the linker is
      finished with its work.  */
-
+  md_number_to_chars (p + 4, 0, 4);
   fix_new_hppa (frag_now, p + 4 - frag_now->fr_literal, 4,
 		call_info->end_symbol, (offsetT) 0,
 		(expressionS *) NULL, 0, reloc,