diff --git a/src/interfaces/ecpg/include/sqlca.h b/src/interfaces/ecpg/include/sqlca.h
index 44e7908f5986d6020cdc976148416e882f410a44..0fa4a62418159cb6b17ed6a6b2e6e046fee8fa11 100644
--- a/src/interfaces/ecpg/include/sqlca.h
+++ b/src/interfaces/ecpg/include/sqlca.h
@@ -1,6 +1,8 @@
 #ifndef POSTGRES_SQLCA_H
 #define POSTGRES_SQLCA_H
 
+#define SQLERRMC_LEN	70
+
 #ifdef __cplusplus
 extern		"C"
 {
@@ -14,7 +16,7 @@ extern		"C"
 		struct
 		{
 			int			sqlerrml;
-			char		sqlerrmc[70];
+			char		sqlerrmc[SQLERRMC_LEN];
 		}			sqlerrm;
 		char		sqlerrp[8];
 		long		sqlerrd[6];
diff --git a/src/interfaces/ecpg/lib/ecpglib.c b/src/interfaces/ecpg/lib/ecpglib.c
index 15440d09d9dcafa1009aef162d154ee208728c5f..205a051a1e76eacbd3632f707a66eb5dcb82743a 100644
--- a/src/interfaces/ecpg/lib/ecpglib.c
+++ b/src/interfaces/ecpg/lib/ecpglib.c
@@ -109,7 +109,7 @@ register_error(long code, char *fmt,...)
 
 	sqlca.sqlcode = code;
 	va_start(args, fmt);
-	vsprintf(sqlca.sqlerrm.sqlerrmc, fmt, args);
+	vsnprintf(sqlca.sqlerrm.sqlerrmc, SQLERRMC_LEN, fmt, args);
 	va_end(args);
 	sqlca.sqlerrm.sqlerrml = strlen(sqlca.sqlerrm.sqlerrmc);
 
@@ -649,7 +649,8 @@ ECPGexecute(struct statement * stmt)
 				int			nfields,
 							ntuples,
 							act_tuple,
-							act_field;
+							act_field,
+							isarray;
 
 			case PGRES_TUPLES_OK:
 				nfields = PQnfields(results);
@@ -678,6 +679,16 @@ ECPGexecute(struct statement * stmt)
 						return (false);
 					}
 
+					array_query = (char *)ecpg_alloc(strlen("select typelem from pg_type where oid=") + 11, stmt -> lineno);
+					sprintf(array_query, "select typelem from pg_type where oid=%d", PQftype(results, act_field));
+					query = PQexec(stmt->connection->connection, array_query);
+					isarray = 0;
+					if (PQresultStatus(query) == PGRES_TUPLES_OK) {
+						isarray = atol((char *)PQgetvalue(query, 0, 0));
+						ECPGlog("ECPGexecute line %d: TYPE database: %d C: %d array: %s\n", stmt->lineno, PQftype(results, act_field), var->type, isarray ? "yes" : "no");
+					}
+					PQclear(query);
+
 					/*
 					 * if we don't have enough space, we cannot read all
 					 * tuples
@@ -726,14 +737,6 @@ ECPGexecute(struct statement * stmt)
 						add_mem(var->value, stmt->lineno);
 					}
 										
-#if 0
-					array_query = (char *)ecpg_alloc(strlen("select typelem from pg_type where oid=") + 11, stmt -> lineno);
-					sprintf(array_query, "select typelem from pg_type where oid=%d", PQftype(results, act_field));
-					query = PQexec(stmt->connection->connection, array_query);
-					if (PQresultStatus(query) == PGRES_TUPLES_OK)
-						ECPGlog("ECPGexecute line %d: TYPE database: %d C: %d array OID: %s\n", stmt->lineno, PQftype(results, act_field), var->type, (char *)PQgetvalue(query, 0, 0));
-					PQclear(query);
-#endif
 					for (act_tuple = 0; act_tuple < ntuples && status; act_tuple++)
 					{
 						pval = (char *)PQgetvalue(results, act_tuple, act_field);
diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile
index fb7ba0d25ac7779056340e9384997dc438855529..c6b5621acfb13095e45be897d1915de57043bd79 100644
--- a/src/interfaces/ecpg/test/Makefile
+++ b/src/interfaces/ecpg/test/Makefile
@@ -1,12 +1,12 @@
 all: stp.so test1 test2 test3 test4 test5 perftest
 
 #LDFLAGS=-g -I /usr/local/pgsql/include -L/usr/local/pgsql/lib -lecpg -lpq -lcrypt
-#LDFLAGS=-g -I../include -I/usr/include/postgresql  -L/usr/lib/postgresql -L../lib -lecpg -lpq -lcrypt
-LDFLAGS=-g -I/usr/include/postgresql -lecpg -lpq -lcrypt
+LDFLAGS=-g -I../include -I/usr/include/postgresql  -L/usr/lib/postgresql -L../lib -lecpg -lpq -lcrypt
+#LDFLAGS=-g -I/usr/include/postgresql -lecpg -lpq -lcrypt
 
 #ECPG=/usr/local/pgsql/bin/ecpg
-#ECPG=../preproc/ecpg -I../include
-ECPG=/usr/bin/ecpg -I/usr/include/postgresql
+ECPG=../preproc/ecpg -I../include
+#ECPG=/usr/bin/ecpg -I/usr/include/postgresql
 
 .SUFFIXES: .pgc .c
 
@@ -22,7 +22,7 @@ perftest: perftest.c
 
 stp.so: stp.c
 	cc -fPIC -I../include -I/usr/include/postgresql -c -o stp.o stp.c
-	ld -Bdynamic -shared -soname stp.so -o stp.so stp.o -lpq -lecpg
+	ld -Bdynamic -shared -soname stp.so -o stp.so stp.o -lpq -lecpg -lc
 
 
 clean: