diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index d1b0e3859..f268a9973 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,8 @@
+2003-06-24  Richard Sandiford  <rsandifo@redhat.com>
+
+	* libc/sys/h8300hms/crt0.S (_start): Fix register sizes in call
+	to atexit().
+
 2003-06-20  Jeff Johnston  <jjohnstn@redhat.com>
 
 	* configure.host (iq2000): Add tabs.
diff --git a/newlib/libc/sys/h8300hms/crt0.S b/newlib/libc/sys/h8300hms/crt0.S
index aa6bed592..8ad6ddc59 100644
--- a/newlib/libc/sys/h8300hms/crt0.S
+++ b/newlib/libc/sys/h8300hms/crt0.S
@@ -50,7 +50,7 @@ _start:
 	cmp.l	er1,er0
 	blo	.Loop
 #ifdef __ELF__
-	mov.l   #__fini,r0
+	mov.l   #__fini,er0
 	jsr     @_atexit
 #ifdef __SIMULATOR__
         jsr     @0xcc
@@ -84,7 +84,7 @@ _start:
 	cmp.l	er1,er0
 	blo	.Loop
 #ifdef __ELF__
-	mov.l   #__fini,r0
+	mov.l   #__fini,er0
 	jsr     @_atexit
 #ifdef __SIMULATOR__
         jsr     @0xcc