diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 9e1125e09315c280eaad8b699c690524acdb94e7..37a2b826c09bbf59ff66230fe5de22eaf5398f1d 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1192,5 +1192,9 @@ Mon Jan  7 12:18:01 CET 2002
 Tue Jan  8 15:16:37 CET 2002
 
 	- Fixed array pointers, no longer using void *.
+
+Thu Jan 10 11:12:14 CET 2002
+
+	- Include sqlca.h automatically.
 	- Set ecpg version to 2.9.0.
         - Set library version to 3.3.0.
diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c
index b6761a6dee181c91dd6cef350cba01c04442f326..f097089f3b1aca16891b933fe1937f952ad5ade1 100644
--- a/src/interfaces/ecpg/preproc/ecpg.c
+++ b/src/interfaces/ecpg/preproc/ecpg.c
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.52 2002/01/10 01:11:45 tgl Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.53 2002/01/10 10:42:54 meskes Exp $ */
 
 /* New main for ecpg, the PostgreSQL embedded SQL precompiler. */
 /* (C) Michael Meskes <meskes@postgresql.org> Feb 5th, 1998 */
@@ -296,8 +296,8 @@ main(int argc, char *const argv[])
 				/* initialize lex */
 				lex_init();
 
-				/* we need two includes */
-				fprintf(yyout, "/* Processed by ecpg (%d.%d.%d) */\n/* These three include files are added by the preprocessor */\n#include <ecpgtype.h>\n#include <ecpglib.h>\n#include <ecpgerrno.h>\n#line 1 \"%s\"\n", MAJOR_VERSION, MINOR_VERSION, PATCHLEVEL, input_filename);
+				/* we need several includes */
+				fprintf(yyout, "/* Processed by ecpg (%d.%d.%d) */\n/* These three include files are added by the preprocessor */\n#include <ecpgtype.h>\n#include <ecpglib.h>\n#include <ecpgerrno.h>\n#include <sqlca.h>\n#line 1 \"%s\"\n", MAJOR_VERSION, MINOR_VERSION, PATCHLEVEL, input_filename);
 
 				/* and parse the source */
 				yyparse();
diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l
index 79b5c4c16fac92b9ca0e2ef290df0b151b2dd59e..e3d4e8c4f300ed2940510a679f4edd460ffec30a 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.83 2001/12/23 12:17:41 meskes Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.84 2002/01/10 10:42:54 meskes Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -824,6 +824,11 @@ cppline			{space}*#(.*\\{space})*.*
 			  {}
 			  yytext[i+1] = '\0';
 
+			  /* since version 2.9.0 sqlca.h is included
+			     automatically */
+			  if (strcmp(yytext, "sqlca") == 0)
+				mmerror(PARSE_ERROR, ET_NOTICE, "sqlca.h is included automatically.");
+
 			  yyin = NULL;
 			  for (ip = include_paths; yyin == NULL && ip != NULL; ip = ip->next)
 			  {
@@ -846,8 +851,8 @@ cppline			{space}*#(.*\\{space})*.*
 			  }
 			  if (!yyin)
 			  {
-				fprintf(stderr, "Error: Cannot open include file %s in line %d\n", yytext, yylineno);
-				exit(NO_INCLUDE_FILE); 
+				sprintf(errortext, "Cannot open include file %s in line %d\n", yytext, yylineno);
+				mmerror(NO_INCLUDE_FILE, ET_FATAL, errortext);
 			  }
 
 			  input_filename = mm_strdup(inc_file);