diff --git a/src/bin/pg_dump/pg_backup_archiver.h b/src/bin/pg_dump/pg_backup_archiver.h
index 417c50bf68a859a3742f1fa8a6fd2d13b6ec2276..41fbb5c9c06a0918aeb480969105629cd0974a94 100644
--- a/src/bin/pg_dump/pg_backup_archiver.h
+++ b/src/bin/pg_dump/pg_backup_archiver.h
@@ -62,7 +62,7 @@ typedef z_stream *z_streamp;
 
 #define K_VERS_MAJOR 1
 #define K_VERS_MINOR 4 
-#define K_VERS_REV 20 
+#define K_VERS_REV 21 
 
 /* Data block types */
 #define BLK_DATA 1
diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c
index 674c24191dc14f613ee8cfb275fd691994d0c835..a137513e78c2e6f15bcb1352df851465bd4a8347 100644
--- a/src/bin/pg_dump/pg_backup_tar.c
+++ b/src/bin/pg_dump/pg_backup_tar.c
@@ -721,7 +721,7 @@ static void	_CloseArchive(ArchiveHandle* AH)
 	lclContext*		ctx = (lclContext*)AH->formatData;
 	TAR_MEMBER		*th;
 	RestoreOptions	*ropt;
-	int				savVerbose;
+	int				savVerbose, i;
 
     if (AH->mode == archModeWrite) {
 
@@ -774,6 +774,13 @@ static void	_CloseArchive(ArchiveHandle* AH)
 		AH->public.verbose = savVerbose;
 
 		tarClose(AH, th);
+
+		/* Add a block of NULLs since it's de-rigeur. */
+		for(i=0; i<512; i++) 
+		{
+			fputc(0, ctx->tarFH);
+		}
+
     }
 
     AH->FH = NULL; 
diff --git a/src/bin/pg_dump/pg_dumpall.sh b/src/bin/pg_dump/pg_dumpall.sh
index e638681562360a9191f3083a0eb78b4fe359e1c9..f24922d3f371dcda148d69f1b984847899e34e6c 100644
--- a/src/bin/pg_dump/pg_dumpall.sh
+++ b/src/bin/pg_dump/pg_dumpall.sh
@@ -6,7 +6,7 @@
 # and "pg_group" tables, which belong to the whole installation rather
 # than any one individual database.
 #
-# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.4 2000/09/08 18:29:27 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/pg_dump/Attic/pg_dumpall.sh,v 1.5 2000/10/25 10:21:38 pjw Exp $
 
 CMDNAME=`basename $0`
 
@@ -179,6 +179,20 @@ while read GRONAME GROSYSID GROLIST ; do
 done
 
 
+# First we dump the template in case there are local extensions.
+
+echo
+echo "--"
+echo "-- Database template1"
+echo "--"
+echo "${BS}connect template1"
+$PGDUMP "template1"
+if [ "$?" -ne 0 ] ; then
+    echo "pg_dump failed on template1, exiting" 1>&2
+    exit 1
+fi
+
+
 # For each database, run pg_dump to dump the contents of that database.
 
 $PSQL -d template1 -At -F ' ' \