diff --git a/compiler/mips/parms.lisp b/compiler/mips/parms.lisp
index 1506b88643bda432911419fe7927772faf797035..242d483713ad6c8549c350e7fa8402955b1f767b 100644
--- a/compiler/mips/parms.lisp
+++ b/compiler/mips/parms.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman (FAHLMAN@CMUC). 
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.55 1990/06/06 20:53:54 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/parms.lisp,v 1.56 1990/06/23 05:39:59 wlott Exp $
 ;;;
 ;;;    This file contains some parameterizations of various VM
 ;;; attributes for the MIPS.  This file is separate from other stuff so 
@@ -541,7 +541,7 @@
   "Make a fixnum out of NUM.  (i.e. shift by two bits if it will fit.)"
   (if (<= #x-20000000 num #x1fffffff)
       #+new-compiler (ash num 2)
-      #-new-compiler (* num 4)
+      #-new-compiler (if (minusp num) (- (ash (- num) 2)) (ash num 2))
       (error "~D is too big for a fixnum." num)))