diff --git a/compiler/pack.lisp b/compiler/pack.lisp
index 48de5e7fc5710d5a21f897f9b105572543f73b77..709cf99e51313a36631c5a0cc240237ce61a13f7 100644
--- a/compiler/pack.lisp
+++ b/compiler/pack.lisp
@@ -978,7 +978,13 @@
       
       (do ((tn (ir2-component-restricted-tns 2comp) (tn-next tn)))
 	  ((null tn))
-	(pack-tn tn t))
+	(when (eq (tn-kind tn) :component)
+	  (pack-tn tn t)))
+
+      (do ((tn (ir2-component-restricted-tns 2comp) (tn-next tn)))
+	  ((null tn))
+	(unless (tn-offset tn)
+	  (pack-tn tn t)))
       
       (do ((tn (ir2-component-normal-tns 2comp) (tn-next tn)))
 	  ((null tn))