diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3eb085f3b69391fc80b6a6c0c7c087e17dbabd8a..6745e72c1a2e62e5e29335c8b11ced64743683fb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
 
+	* mn10200.c (mn10200_va_arg): Force the return value into a
+	register.
+
 	* fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
 
 	* cccp.c (macroexpand): Avoid out of range accesses for omitted
diff --git a/gcc/config/mn10200/mn10200.c b/gcc/config/mn10200/mn10200.c
index b00adf1f35483fa35cb999897c3194341310d612..26b82484f1fb120adb3a613559f1c79664985d8d 100644
--- a/gcc/config/mn10200/mn10200.c
+++ b/gcc/config/mn10200/mn10200.c
@@ -1471,7 +1471,7 @@ mn10200_va_arg (valist, type)
     }
 
   /* Calculate!  */
-  return expand_expr (t, NULL_RTX, Pmode, EXPAND_NORMAL);
+  return force_reg (Pmode, expand_expr (t, NULL_RTX, Pmode, EXPAND_NORMAL));
 }
 
 char *