diff --git a/ldb/gc.c b/ldb/gc.c
index a5d6145bb2a97e0a1beed8aa1a03d2afc5d40657..e34e442b1a74947efe67d819bf52c6e0dbbcdcf7 100644
--- a/ldb/gc.c
+++ b/ldb/gc.c
@@ -1,7 +1,7 @@
 /*
  * Stop and Copy GC based on Cheney's algorithm.
  *
- * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/gc.c,v 1.13 1990/09/26 15:11:32 wlott Exp $
+ * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/gc.c,v 1.14 1990/10/02 23:04:18 wlott Exp $
  * 
  * Written by Christopher Hoover.
  */
@@ -1714,6 +1714,7 @@ gc_init()
 	scavtab[type_Sap] = scav_unboxed;
 	scavtab[type_UnboundMarker] = scav_immediate;
 	scavtab[type_WeakPointer] = scav_weak_pointer;
+        scavtab[type_StructureHeader] = scav_boxed;
 
 
 	/* Transport Other Table */
@@ -1751,6 +1752,7 @@ gc_init()
 	transother[type_Sap] = trans_unboxed;
 	transother[type_UnboundMarker] = trans_immediate;
 	transother[type_WeakPointer] = trans_weak_pointer;
+        transother[type_StructureHeader] = trans_vector;
 
 	/* Size table */
 
@@ -1802,4 +1804,5 @@ gc_init()
 	sizetab[type_Sap] = size_unboxed;
 	sizetab[type_UnboundMarker] = size_immediate;
 	sizetab[type_WeakPointer] = size_weak_pointer;
+        sizetab[type_StructureHeader] = size_vector;
 }
diff --git a/ldb/print.c b/ldb/print.c
index cc47e2cd03faad7b11b16ea3af2d82ca2018be54..abb0e8065f3f2e5562b8835c54137a0be6ffacb0 100644
--- a/ldb/print.c
+++ b/ldb/print.c
@@ -1,4 +1,4 @@
-/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/print.c,v 1.12 1990/09/21 06:04:12 wlott Exp $ */
+/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/print.c,v 1.13 1990/10/02 23:04:52 wlott Exp $ */
 #include <stdio.h>
 
 #include "ldb.h"
@@ -64,7 +64,8 @@ char *subtype_Names[] = {
     "character",
     "SAP",
     "unbound marker",
-    "weak pointer"
+    "weak pointer",
+    "structure header"
 };
 
 static void indent(in)
@@ -417,6 +418,7 @@ lispobj obj;
                 break;
 
             case type_SimpleVector:
+            case type_StructureHeader:
                 NEWLINE;
                 printf("length = %d", length);
                 ptr++;
@@ -473,6 +475,11 @@ lispobj obj;
                 NEWLINE;
                 printf("pointer to an immediate?");
                 break;
+
+            default:
+                NEWLINE;
+                printf("Unknown header object?");
+                break;
         }
     }
 }
diff --git a/ldb/purify.c b/ldb/purify.c
index bd7f49f0dabe81d6665db72aa4505abf3b3dbaf1..46ecc29622f5bd030029cd96f83bd71b29b2cf57 100644
--- a/ldb/purify.c
+++ b/ldb/purify.c
@@ -1,6 +1,6 @@
 /* Purify. */
 
-/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/purify.c,v 1.6 1990/09/27 06:33:57 wlott Exp $ */
+/* $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/ldb/Attic/purify.c,v 1.7 1990/10/02 23:04:59 wlott Exp $ */
 
 
 #include <mach.h>
@@ -414,6 +414,7 @@ static lispobj ptrans_otherptr(thing, header, constant)
         return ptrans_vector(thing, 1, 0, FALSE, constant);
 
       case type_SimpleVector:
+      case type_StructureHeader:
         return ptrans_vector(thing, 32, 0, TRUE, constant);
 
       case type_SimpleArrayUnsignedByte2: