diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 05b7df73800b6fef80530de796f6f6525934755d..48a2cada29a306755e0148adc72fc6f42f805817 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.48 1998/08/19 02:01:32 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.49 1998/08/20 15:16:54 momjian Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -1308,6 +1308,7 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
 	Datum		values[Natts_pg_class];
 	char		nulls[Natts_pg_class];
 	char		replace[Natts_pg_class];
+	HeapScanDesc	pg_class_scan = NULL;
 
 	/* ----------------
 	 * This routine handles updates for both the heap and index relation
@@ -1340,11 +1341,30 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
 	if (!RelationIsValid(pg_class))
 		elog(ERROR, "UpdateStats: could not open RELATION relation");
 
-	tuple = SearchSysCacheTupleCopy(RELOID,
-									ObjectIdGetDatum(relid),
-									0, 0, 0);
+
+	if (!IsBootstrapProcessingMode())
+	{
+		tuple = SearchSysCacheTupleCopy(RELOID,
+										ObjectIdGetDatum(relid),
+										0, 0, 0);
+	}
+	else
+	{
+		ScanKeyData key[1];
+
+		ScanKeyEntryInitialize(&key[0], 0,
+								ObjectIdAttributeNumber,
+								F_OIDEQ,
+								ObjectIdGetDatum(relid));
+
+		pg_class_scan = heap_beginscan(pg_class, 0, SnapshotNow, 1, key);
+		tuple = heap_getnext(pg_class_scan, 0);
+	}
+	
 	if (!HeapTupleIsValid(tuple))
 	{
+		if (IsBootstrapProcessingMode())
+			heap_endscan(pg_class_scan);
 		heap_close(pg_class);
 		elog(ERROR, "UpdateStats: cannot scan RELATION relation");
 	}
@@ -1385,11 +1405,11 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
 		 * At bootstrap time, we don't need to worry about concurrency or
 		 * visibility of changes, so we cheat.
 		 */
-
 		rd_rel = (Form_pg_class) GETSTRUCT(tuple);
 		rd_rel->relpages = relpages;
 		rd_rel->reltuples = reltuples;
 		rd_rel->relhasindex = hasindex;
+		WriteBuffer(pg_class_scan->rs_cbuf);
 	}
 	else
 	{
@@ -1402,14 +1422,18 @@ UpdateStats(Oid relid, long reltuples, bool hasindex)
 		values[Anum_pg_class_relhasindex - 1] = CharGetDatum(hasindex);
 
 		newtup = heap_modifytuple(tuple, pg_class, values, nulls, replace);
-		heap_replace(pg_class, &newtup->t_ctid, newtup);
+		heap_replace(pg_class, &tuple->t_ctid, newtup);
 		pfree(newtup);
 		CatalogOpenIndices(Num_pg_class_indices, Name_pg_class_indices, idescs);
 		CatalogIndexInsert(idescs, Num_pg_class_indices, pg_class, newtup);
 		CatalogCloseIndices(Num_pg_class_indices, idescs);
 	}
 
-	pfree(tuple);
+	if (!IsBootstrapProcessingMode())
+		pfree(tuple);
+	else
+		heap_endscan(pg_class_scan);
+	
 	heap_close(pg_class);
 	heap_close(whichRel);
 }
diff --git a/src/backend/catalog/indexing.c b/src/backend/catalog/indexing.c
index 5a4ab5ff03ecc860d142a1063676d3d618970db0..8b50cee327c1e384933ea71a8275ea238cdc5b60 100644
--- a/src/backend/catalog/indexing.c
+++ b/src/backend/catalog/indexing.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.20 1998/08/19 02:01:33 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.21 1998/08/20 15:16:55 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -254,7 +254,7 @@ CatalogIndexFetchTuple(Relation heapRelation,
 
 	index_endscan(sd);
 	pfree(sd);
-	return (tuple);
+	return tuple;
 }
 
 /*
@@ -276,7 +276,7 @@ AttributeNameIndexScan(Relation heapRelation,
 						   (bits16) 0x0,
 						   (AttrNumber) 1,
 						   (RegProcedure)F_OIDEQ,
-						   Int32GetDatum(relid));
+						   ObjectIdGetDatum(relid));
 
 	ScanKeyEntryInitialize(&skey[1],
 						   (bits16) 0x0,
@@ -456,7 +456,7 @@ ClassNameIndexScan(Relation heapRelation, char *relName)
 						   (bits16) 0x0,
 						   (AttrNumber) 1,
 						   (RegProcedure) F_NAMEEQ,
-						   (Datum) relName);
+						   PointerGetDatum(relName));
 
 	idesc = index_openr(ClassNameIndex);
 	tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 1);
diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c
index e4d215d452a1cbd154e4ea11b2f7813344cff59a..6448d2e830c21237e58076668f1653530d838bb6 100644
--- a/src/backend/commands/vacuum.c
+++ b/src/backend/commands/vacuum.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.74 1998/08/19 23:48:21 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.75 1998/08/20 15:16:57 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -188,7 +188,7 @@ vc_init()
 
 	if ((fd = open("pg_vlock", O_CREAT | O_EXCL, 0600)) < 0)
 	{
-		elog(ERROR, "Can't create lock file -- another vacuum cleaner running?\n\
+		elog(ERROR, "Can't create lock file.  Is another vacuum cleaner running?\n\
 \tIf not, you may remove the pg_vlock file in the pgsql/data/base/your_db\n\
 \tdirectory");
 	}
@@ -2204,24 +2204,25 @@ static void
 vc_mkindesc(Relation onerel, int nindices, Relation *Irel, IndDesc **Idesc)
 {
 	IndDesc    *idcur;
-	HeapTuple	tuple;
+	HeapTuple	tuple, cachetuple;
 	AttrNumber *attnumP;
 	int			natts;
 	int			i;
 	Buffer		buffer;
-	
+		
 	*Idesc = (IndDesc *) palloc(nindices * sizeof(IndDesc));
 
 	for (i = 0, idcur = *Idesc; i < nindices; i++, idcur++)
 	{
-		tuple = SearchSysCacheTuple(INDEXRELID,
-									ObjectIdGetDatum(RelationGetRelid(Irel[i])),
-									0, 0, 0);
+		cachetuple = SearchSysCacheTupleCopy(INDEXRELID,
+										ObjectIdGetDatum(RelationGetRelid(Irel[i])),
+										0, 0, 0);
 		Assert(tuple);
 
 		/* get the buffer cache tuple */
-		tuple = heap_fetch(onerel, SnapshotNow, &tuple->t_ctid, &buffer);
+		tuple = heap_fetch(onerel, SnapshotNow, &cachetuple->t_ctid, &buffer);
 		Assert(tuple);
+		pfree(cachetuple);
 
 		idcur->tform = (IndexTupleForm) GETSTRUCT(tuple);
 		for (attnumP = &(idcur->tform->indkey[0]), natts = 0;
diff --git a/src/bin/initdb/initdb.sh b/src/bin/initdb/initdb.sh
index f7a6536126cf1c0d9c19ad354533783135f45c19..02077511aa87b1c2271fa77f4e3292c430b43861 100644
--- a/src/bin/initdb/initdb.sh
+++ b/src/bin/initdb/initdb.sh
@@ -26,7 +26,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.48 1998/08/19 23:48:23 momjian Exp $
+#    $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.49 1998/08/20 15:16:59 momjian Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -316,7 +316,7 @@ fi
 
 BACKENDARGS="-boot -C -F -D$PGDATA $BACKEND_TALK_ARG"
 
-echo "$CMDNAME: creating template database in $PGDATA/base/template1"
+echo "Creating template database in $PGDATA/base/template1"
 [ "$debug" -ne 0 ] && echo "Running: postgres $BACKENDARGS template1"
 
 cat $TEMPLATE \