diff --git a/compiler/pack.lisp b/compiler/pack.lisp
index 709cf99e51313a36631c5a0cc240237ce61a13f7..80187911d5564251e3860f4bcb984ae0ee35804a 100644
--- a/compiler/pack.lisp
+++ b/compiler/pack.lisp
@@ -451,6 +451,13 @@
   (undefined-value))
 
 
+;;; Emit-Saves  --  Internal
+;;;
+;;;    Scan over the VOPs in Block, emiting saving code for TNs noted in the
+;;; codegen info that are packed into saved SCs.
+;;;
+
+
 ;;; Emit-Saves  --  Internal
 ;;;
 ;;;    Scan over the VOPs in Block, emiting saving code for TNs noted in the
@@ -462,7 +469,8 @@
       ((null vop))
     (when (eq (vop-info-save-p (vop-info vop)) t)
       (do-live-tns (tn (vop-save-set vop) block)
-	(when (sc-save-p (tn-sc tn))
+	(when (and (sc-save-p (tn-sc tn))
+		   (not (eq (tn-kind tn) :component)))
 	  (let ((writes (tn-writes tn))
 		(save (tn-save-tn tn)))
 	    (if (or (and save (eq (tn-kind save) :save-once))