diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 4c90dbf0c00ad0d902081ecea81bff496ea1feee..7809943743166f81760c7afaa24207f9ce4bef9b 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1604,6 +1604,10 @@ Fri Aug  1 08:54:02 CEST 2003
 Mon Aug 25 13:24:27 CEST 2003
 
 	- Synced parser.
+	
+Tue Aug 26 18:06:45 CEST 2003
+
+	- Fixed processing of connect statement with username as variable.
 	- Set ecpg version to 3.0.0
 	- Set ecpg library to 4.0.0
 	- Set pgtypes library to 1.0.0
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 7cd7b263891d6ea3cd6457900d8d6dfc73e7d600..e295d1f164a9b3c82df1c3d2833319f0489ef269 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.252 2003/08/25 13:44:00 meskes Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.253 2003/08/26 16:09:01 meskes Exp $ */
 
 /* Copyright comment */
 %{
@@ -4265,7 +4265,7 @@ user_name: UserId
 		{
 			if ($1[0] == '\"')
 				$$ = $1;
-			else if (strcmp($1, "?") == 0) /* variable */
+			else if (strcmp($1, " ?") == 0) /* variable */
 			{
 				enum ECPGttype type = argsinsert->variable->type->type;
 
diff --git a/src/interfaces/ecpg/test/test1.pgc b/src/interfaces/ecpg/test/test1.pgc
index 05fcda0ca9ecb29b778d80b8a9fec5c71d40d8c9..753c0abae5d935440cec08593729cb457dd9284b 100644
--- a/src/interfaces/ecpg/test/test1.pgc
+++ b/src/interfaces/ecpg/test/test1.pgc
@@ -52,6 +52,7 @@ exec sql endif;
 	char command[128];
 	char *connection="pm";
 	int how_many;
+	char *user="postgres";
 exec sql end declare section;
 	exec sql var name is string[AMOUNT];
 	char msg[128];
@@ -65,7 +66,7 @@ exec sql end declare section;
 	exec sql connect to mm as main;
 
 	strcpy(msg, "connect");
-        exec sql connect to pm;
+        exec sql connect to pm user :user;
 
 	strcpy(msg, "create");
 	exec sql at main create table "Test" (name char(NAMELEN), amount int, letter char(1));