diff --git a/compiler/mips/values.lisp b/compiler/mips/values.lisp
index 545a9122d45f667192eab0f70f6b4a67f8cc99fc..71cbdc02df11dd27e19da85ed6c517dc70390112 100644
--- a/compiler/mips/values.lisp
+++ b/compiler/mips/values.lisp
@@ -51,12 +51,12 @@
       (let ((tn (tn-ref-tn val)))
 	(sc-case tn
 	  (descriptor-reg
-	   (st tn start-temp i))
-	  (stack
+	   (storew tn start-temp i))
+	  (control-stack
 	   (load-stack-tn temp tn)
-	   (st temp start-temp i)))))
+	   (storew temp start-temp i)))))
     (move start start-temp)
-    (inst ori count zero-tn nvals)))
+    (move count nvals)))
 
 
 ;;; Push a list of values on the stack, returning Start and Count as used in