diff --git a/doc/src/sgml/.gitignore b/doc/src/sgml/.gitignore
index 62a38d2..e1b84b4 100644
--- a/doc/src/sgml/.gitignore
+++ b/doc/src/sgml/.gitignore
@@ -16,6 +16,7 @@
 # GENERATED_SGML
 /features-supported.sgml
 /features-unsupported.sgml
+/errcodes-table.sgml
 /version.sgml
 /bookindex.sgml
 /HTML.index
diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile
index 59d8692..fe70d8e 100644
--- a/doc/src/sgml/Makefile
+++ b/doc/src/sgml/Makefile
@@ -137,7 +137,7 @@ features-unsupported.sgml: $(top_srcdir)/src/backend/catalog/sql_feature_package
 	$(PERL) $(srcdir)/mk_feature_tables.pl NO $^ > $@
 
 errcodes-table.sgml: $(top_srcdir)/src/include/utils/errcodes.txt generate-errcodes-table.pl
-	$(PERL) generate-errcodes-table.pl $< > $@
+	$(PERL) $(srcdir)/generate-errcodes-table.pl $< > $@
 
 ##
 ## Print
diff --git a/src/backend/utils/.gitignore b/src/backend/utils/.gitignore
index fd00851..5c3a565 100644
--- a/src/backend/utils/.gitignore
+++ b/src/backend/utils/.gitignore
@@ -1,3 +1,4 @@
 /fmgrtab.c
 /fmgroids.h
 /probes.h
+/errcodes.h
diff --git a/src/backend/utils/generate-errcodes.pl b/src/backend/utils/generate-errcodes.pl
index 592ad66..3469f19 100644
--- a/src/backend/utils/generate-errcodes.pl
+++ b/src/backend/utils/generate-errcodes.pl
@@ -17,10 +17,15 @@ while (<$errcodes>) {
     next if /^#/;
     next if /^\s*$/;
 
-    # Skip section headers
-    next if /^Section:/;
-
-    die unless /^([^\s]{5})\s+[EWS]\s+([^\s]+)/;
+    # Omit a comment for each section header
+    if (/^Section:(.*)/) {
+		my $header = $1;
+		$header =~ s/^\s+//;
+		print "\n/* $header */\n";
+		next;
+	}
+
+    die "unable to parse errcodes.txt" unless /^([^\s]{5})\s+[EWS]\s+([^\s]+)/;
 
     (my $sqlstate, my $errcode_macro) = ($1, $2);
 
diff --git a/src/include/utils/.gitignore b/src/include/utils/.gitignore
index c7c402b..808826d 100644
--- a/src/include/utils/.gitignore
+++ b/src/include/utils/.gitignore
@@ -1,2 +1,3 @@
 /fmgroids.h
 /probes.h
+/errcodes.h
diff --git a/src/pl/plpgsql/src/.gitignore b/src/pl/plpgsql/src/.gitignore
index 2eecb0f..92387fa 100644
--- a/src/pl/plpgsql/src/.gitignore
+++ b/src/pl/plpgsql/src/.gitignore
@@ -1,2 +1,3 @@
 /pl_gram.c
 /pl_gram.h
+/plerrcodes.h
