diff --git a/compiler/mips/array.lisp b/compiler/mips/array.lisp
index 587b292032b6f1c4ca98ad92f46a3ac1a1782808..6947c20f815c699afa5e23a2fbb16ec553cab929 100644
--- a/compiler/mips/array.lisp
+++ b/compiler/mips/array.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman (FAHLMAN@CMUC). 
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/array.lisp,v 1.22 1990/08/02 03:28:43 wlott Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/array.lisp,v 1.23 1990/08/02 03:42:45 wlott Exp $
 ;;;
 ;;;    This file contains the MIPS definitions for array operations.
 ;;;
@@ -341,7 +341,8 @@
     (inst swc1 value lip
 	  (- (* vm:vector-data-offset vm:word-bytes)
 	     vm:other-pointer-type))
-    (move result value)))
+    (unless (location= result value)
+      (inst move :single result value))))
 
 (define-vop (data-vector-ref/simple-array-double-float)
   (:translate data-vector-ref)
@@ -384,7 +385,8 @@
 	  (+ (- (* vm:vector-data-offset vm:word-bytes)
 		vm:other-pointer-type)
 	     vm:word-bytes))
-    (move result value)))
+    (unless (location= result value)
+      (inst move :double result value))))