diff --git a/gas/ChangeLog b/gas/ChangeLog
index c6c0c165b98..51b1d168c98 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+Tue Jan 11 17:01:06 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* expr.c (integer_constant): Fix computation of too_many_digits.
+	Variable digit_2 renamed to start.  Fix check for whether number
+	will fit in 32 bits.
+	* read.c (emit_expr): Use valueT instead of long.
+
 Tue Jan 11 13:01:20 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
 
 	* config/obj-elf.c: If TC_MIPS, include elf/mips.h.
diff --git a/gas/read.c b/gas/read.c
index 6ccf40c4a80..42bc75d4cc8 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -78,7 +78,7 @@ const char lex_type[256] =
   0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0,	/* _!"#$%&'()*+,-./ */
   1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,	/* 0123456789:;<=>? */
   LEX_AT, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,	/* @ABCDEFGHIJKLMNO */
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 3,	/* PQRSTUVWXYZ[\]^_ */
+  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 3,	/* PQRSTUVWXYZ[\]^_ */
   0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,	/* `abcdefghijklmno */
   3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0,	/* pqrstuvwxyz{|}~. */
   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -1702,14 +1702,14 @@ emit_expr (exp, nbytes)
 
   if (op == O_constant)
     {
-      register long get;
-      register long use;
-      register long mask;
-      register long unmask;
+      register valueT get;
+      register valueT use;
+      register valueT mask;
+      register valueT unmask;
 
       /* JF << of >= number of bits in the object is undefined.  In
 	 particular SPARC (Sun 4) has problems */
-      if (nbytes >= sizeof (long))
+      if (nbytes >= sizeof (valueT))
 	mask = 0;
       else
 	mask = ~0 << (BITS_PER_CHAR * nbytes);	/* Don't store these bits. */
@@ -1728,7 +1728,7 @@ emit_expr (exp, nbytes)
 	  as_warn ("Value 0x%lx truncated to 0x%lx.", get, use);
 	}
       /* put bytes in right order. */
-      md_number_to_chars (p, (valueT) use, (int) nbytes);
+      md_number_to_chars (p, use, (int) nbytes);
     }
   else if (op == O_big)
     {