diff --git a/src/interfaces/ecpg/include/ecpglib.h b/src/interfaces/ecpg/include/ecpglib.h
index d3da4a40559eb51edc577f1fdc89a8113903e659..e5c3f19315128e71735729ac64960a73f39fca40 100644
--- a/src/interfaces/ecpg/include/ecpglib.h
+++ b/src/interfaces/ecpg/include/ecpglib.h
@@ -49,9 +49,10 @@ bool		ECPGdisconnect(int, const char *);
 bool		ECPGprepare(int, char *, char *);
 bool		ECPGdeallocate(int, char *);
 bool		ECPGdeallocate_all(int);
-char	   *ECPGprepared_statement(char *);
+char	       *ECPGprepared_statement(char *);
 
 void		ECPGlog(const char *format,...);
+char	       *ECPGerrmsg(void);
 
  /* print an error message */
 void		sqlprint(void);
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index 5a8f777033b2dfe28a381c53c708879e0b2b90be..7e4b5fadd2bfc90b983ac92d81c7d31f5aa46aec 100644
--- a/src/interfaces/ecpg/preproc/pgc.l
+++ b/src/interfaces/ecpg/preproc/pgc.l
@@ -12,7 +12,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.105 2003/02/14 16:40:01 meskes Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.106 2003/02/17 14:06:39 meskes Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -969,7 +969,8 @@ cppline			{space}*#(.*\\{space})*.*
 						yyin = NULL;
 
 						/* If file name is enclosed in '"' remove these and look only in '.' */
-						if (yytext[0] == '"' && yytext[i] == '"') 
+						/* Informix does look into all include paths though, except filename starts with '/' */
+						if ((yytext[0] == '"' && yytext[i] == '"') && (compat != ECPG_COMPAT_INFORMIX || yytext[0] == '/'))
 						{
 							yytext[i] = '\0';
 							memmove(yytext, yytext+1, strlen(yytext));
@@ -988,6 +989,12 @@ cppline			{space}*#(.*\\{space})*.*
 						}
 						else
 						{
+							if (yytext[0] == '"' && yytext[i] == '"')
+							{
+								yytext[i] = '\0';
+								memmove(yytext, yytext+1, strlen(yytext));
+							}
+							
 						  	for (ip = include_paths; yyin == NULL && ip != NULL; ip = ip->next)
 						  	{
 								if (strlen(ip->path) + strlen(yytext) + 3 > MAXPGPATH)
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index a8770f9e6cafdddb2cd78bb8b0e8ea68947d42a7..86dc68b5b80dba4aa9b30d464b306f9bb08b33f6 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.208 2003/02/14 13:17:13 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.209 2003/02/17 14:06:40 meskes Exp $ */
 
 /* Copyright comment */
 %{
@@ -153,7 +153,7 @@ make_name(void)
 /* special embedded SQL token */
 %token	SQL_ALLOCATE SQL_AUTOCOMMIT SQL_BOOL SQL_BREAK
 		SQL_CALL SQL_CARDINALITY SQL_CONNECT SQL_CONNECTION
-		SQL_CONTINUE SQL_COUNT SQL_CURRENT SQL_DATA
+		SQL_CONTINUE SQL_COUNT SQL_CURRENT SQL_DATA 
 		SQL_DATETIME_INTERVAL_CODE
 		SQL_DATETIME_INTERVAL_PRECISION
 		SQL_DESCRIPTOR SQL_DISCONNECT SQL_ENUM SQL_FOUND
@@ -3889,6 +3889,8 @@ ECPGConnect: SQL_CONNECT TO connection_target opt_connection_name opt_user
 		  /* also allow ORACLE syntax */
 		| SQL_CONNECT ora_user
 			{ $$ = cat_str(3, make_str("NULL,"), $2, make_str(",NULL")); }
+		| DATABASE connection_target
+			{ $$ = cat2_str($2, make_str(",NULL,NULL,NULL")); }
 		;
 
 connection_target: database_name opt_server opt_port