diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
new file mode 100644
index acd2514..b2da1cf
*** a/src/bin/initdb/initdb.c
--- b/src/bin/initdb/initdb.c
*************** make_template0(void)
*** 1976,1981 ****
--- 1976,1983 ----
  		"REVOKE CREATE,TEMPORARY ON DATABASE template1 FROM public;\n",
  		"REVOKE CREATE,TEMPORARY ON DATABASE template0 FROM public;\n",
  
+ 		"COMMENT ON DATABASE template0 IS 'unmodifiable empty database';\n",
+ 
  		/*
  		 * Finally vacuum to clean up dead rows in pg_database
  		 */
*************** make_postgres(void)
*** 2011,2016 ****
--- 2013,2019 ----
  	const char **line;
  	static const char *postgres_setup[] = {
  		"CREATE DATABASE postgres;\n",
+ 		"COMMENT ON DATABASE postgres IS 'default administrative connection database';\n",
  		NULL
  	};
  
diff --git a/src/include/catalog/pg_database.h b/src/include/catalog/pg_database.h
new file mode 100644
index 6419d65..ee4c858
*** a/src/include/catalog/pg_database.h
--- b/src/include/catalog/pg_database.h
*************** typedef FormData_pg_database *Form_pg_da
*** 71,77 ****
  #define Anum_pg_database_datacl			12
  
  DATA(insert OID = 1 (  template1 PGUID ENCODING "LC_COLLATE" "LC_CTYPE" t t -1 0 0 1663 _null_));
! SHDESCR("default template database");
  #define TemplateDbOid			1
  
  #endif   /* PG_DATABASE_H */
--- 71,77 ----
  #define Anum_pg_database_datacl			12
  
  DATA(insert OID = 1 (  template1 PGUID ENCODING "LC_COLLATE" "LC_CTYPE" t t -1 0 0 1663 _null_));
! SHDESCR("default template for new databases");
  #define TemplateDbOid			1
  
  #endif   /* PG_DATABASE_H */
