diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 8bdda60ed1ae66ad416a25e5f9b4792ba61d03f5..4c90dbf0c00ad0d902081ecea81bff496ea1feee 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -1600,6 +1600,10 @@ Fri Aug  1 08:54:02 CEST 2003
 	
 	- Added some Informix error codes in Informix mode.
 	- Added just another pgtypeslib function.
+
+Mon Aug 25 13:24:27 CEST 2003
+
+	- Synced parser.
 	- 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/ecpglib/error.c b/src/interfaces/ecpg/ecpglib/error.c
index 48b879d5462436ce6a50b7f2f965dc4ac5359a10..2f900a9e04b30b8782f599c474467a52ce5fce06 100644
--- a/src/interfaces/ecpg/ecpglib/error.c
+++ b/src/interfaces/ecpg/ecpglib/error.c
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.8 2003/08/24 18:36:38 petere Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/ecpglib/error.c,v 1.9 2003/08/25 13:43:58 meskes Exp $ */
 
 #define POSTGRES_ECPG_INTERNAL
 #include "postgres_fe.h"
@@ -192,7 +192,7 @@ ECPGraise_backend(int line, PGresult *result, PGconn *conn, int compat)
 		sqlca->sqlcode = ECPG_PGSQL;
 
 	ECPGlog("raising sqlstate %.*s in line %d, '%s'.\n",
-			sqlca->sqlstate, sizeof(sqlca->sqlstate), line, sqlca->sqlerrm.sqlerrmc);
+			sizeof(sqlca->sqlstate), sqlca->sqlstate, line, sqlca->sqlerrm.sqlerrmc);
 
 	/* free all memory we have allocated for the user */
 	ECPGfree_auto_mem();
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 14f51f8460dc4a1bc38436356c1695c74ebda740..7cd7b263891d6ea3cd6457900d8d6dfc73e7d600 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.251 2003/08/06 15:54:06 tgl Exp $ */
+/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.252 2003/08/25 13:44:00 meskes Exp $ */
 
 /* Copyright comment */
 %{
@@ -420,7 +420,7 @@ adjust_informix(struct arguments *list)
 %type  <str>	row_descriptor ConstDatetime AlterDomainStmt AlterSeqStmt
 %type  <str>	SelectStmt into_clause OptTemp ConstraintAttributeSpec
 %type  <str>	opt_table opt_all sort_clause sortby_list ConstraintAttr
-%type  <str>	sortby OptUseOp qualified_name_list name_list ColId_or_Sconst
+%type  <str>	sortby qualified_name_list name_list ColId_or_Sconst
 %type  <str>	group_clause having_clause from_clause opt_distinct opt_hold
 %type  <str>	join_outer where_clause relation_expr sub_type opt_arg
 %type  <str>	opt_column_list insert_rest InsertStmt
@@ -2887,14 +2887,14 @@ sortby_list:  sortby					{ $$ = $1; }
 		| sortby_list ',' sortby		{ $$ = cat_str(3, $1, make_str(","), $3); }
 		;
 
-sortby: a_expr OptUseOp
-			{ $$ = cat2_str($1, $2); }
-		;
-
-OptUseOp:  USING all_Op		{ $$ = cat2_str(make_str("using"), $2); }
-		| ASC				{ $$ = make_str("asc"); }
-		| DESC				{ $$ = make_str("desc"); }
-		| /*EMPTY*/			{ $$ = EMPTY; }
+sortby: a_expr USING qual_all_Op
+			{ $$ = cat_str(3, $1, make_str("using"), $3); }
+		| a_expr ASC
+			{ $$ = cat2_str($1, make_str("asc")); }
+		| a_expr DESC
+			{ $$ = cat2_str($1, make_str("desc")); }
+		| a_expr
+			{ $$ = $1; }
 		;
 
 select_limit:	LIMIT select_limit_value OFFSET select_offset_value