diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 576e6ee03a53e7fdff129bcfd19e7aee8e05ec6f..23dd86b2b87aeefd790b31cf6b4d6381c4f8609d 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1736,3 +1736,8 @@ Mon Jan 26 21:57:14 CET 2004
 	- Fixed parsing of nested structures.
 	- Added option to parse header files.
 
+Sun Feb 15 14:44:14 CET 2004
+
+	- Added missing braces to array parsing.
+	- Set ecpg version to 3.1.1.
+
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile
index c30db1f200008d817f560cc76ac0581b51190352..87c1ffa43b90d8ddb172304b7d58ab9b380c632e 100644
--- a/src/interfaces/ecpg/preproc/Makefile
+++ b/src/interfaces/ecpg/preproc/Makefile
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.97 2003/12/18 18:55:09 petere Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.98 2004/02/15 13:48:54 meskes Exp $
 
 subdir = src/interfaces/ecpg/preproc
 top_builddir = ../../../..
@@ -6,7 +6,7 @@ include $(top_builddir)/src/Makefile.global
 
 MAJOR_VERSION=3
 MINOR_VERSION=1
-PATCHLEVEL=0
+PATCHLEVEL=1
 
 override CPPFLAGS := -I$(srcdir)/../include -I$(srcdir) $(CPPFLAGS) $(THREAD_CPPFLAGS) \
 	-DMAJOR_VERSION=$(MAJOR_VERSION) \
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index a1827216878e2d05b4a56397517687e665426152..264f93f847cb2e39d6dd1562d5dcb354d8cf4918 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.124 2003/12/29 13:53:04 meskes Exp $
+ *	  $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.125 2004/02/15 13:48:54 meskes Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -183,7 +183,7 @@ ident_cont		[A-Za-z\200-\377_0-9\$]
 
 identifier		{ident_start}{ident_cont}*
 
-array			({ident_cont}|{whitespace}|[\+\-\*\%\/\(\)])*
+array			({ident_cont}|{whitespace}|[\[\]\+\-\*\%\/\(\)])*
 typecast		"::"
 
 /*
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 267950acf9002589af1bbbf8677b7b45b03d94a6..55ac0829c90e2f793c7915208eac76c8f43a2c04 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.271 2004/01/28 09:52:14 meskes Exp $ */
+/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.272 2004/02/15 13:48:54 meskes Exp $ */
 
 /* Copyright comment */
 %{
@@ -4632,7 +4632,6 @@ type_declaration: S_TYPEDEF
 		char * dimension = $6.index1;
 		char * length = $6.index2;
 
-printf("MM: %s\n", $5);
 		if (($3.type_enum == ECPGt_struct ||
 		     $3.type_enum == ECPGt_union) &&
 		    initializer == 1)