diff --git a/src/interfaces/ecpg/ChangeLog b/src/interfaces/ecpg/ChangeLog
index 78e94f3401b3fb03eab044643664ec2bfb7412af..8945cd5debf8cb810b3baf30c93894c94d1f16fc 100644
--- a/src/interfaces/ecpg/ChangeLog
+++ b/src/interfaces/ecpg/ChangeLog
@@ -617,3 +617,8 @@ Mon Jul 19 07:53:20 CEST 1999
 	- Fixed quoting bug in ecpglib.c
 	- Set ecpg version to 2.6.1
 	- Set library version to 3.0.1
+
+Sun Aug  1 13:31:19 CEST 1999
+
+	- Synced preproc.y with gram.y.
+	- Set ecpg version to 2.6.2
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile
index 359b42b3fa5e0d7b4b96686394dc2aeb7b2291c5..3433ec75ac5337aec699183d2454872a39a565e2 100644
--- a/src/interfaces/ecpg/preproc/Makefile
+++ b/src/interfaces/ecpg/preproc/Makefile
@@ -3,7 +3,7 @@ include $(SRCDIR)/Makefile.global
 
 MAJOR_VERSION=2
 MINOR_VERSION=6
-PATCHLEVEL=1
+PATCHLEVEL=2
 
 CFLAGS+=-I../include -DMAJOR_VERSION=$(MAJOR_VERSION) \
 	-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index 02caacf4cf47524754c8d73dc235a8cb9e5afc5b..23eaa6d82ce8d82eb7079ebae45af4aefc113b59 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -777,10 +777,10 @@ adjust_array(enum ECPGttype type_enum, int *dimension, int *length, int type_dim
 %type  <str>    update_target_el opt_id relation_name database_name
 %type  <str>    access_method attr_name class index_name name func_name
 %type  <str>    file_name AexprConst ParamNo TypeId
-%type  <str>	in_expr_nodes not_in_expr_nodes a_expr b_expr
+%type  <str>	in_expr_nodes a_expr b_expr
 %type  <str> 	opt_indirection expr_list extract_list extract_arg
 %type  <str>	position_list substr_list substr_from
-%type  <str>	trim_list in_expr substr_for not_in_expr attr attrs
+%type  <str>	trim_list in_expr substr_for attr attrs
 %type  <str>	Typename SimpleTypename Generic Numeric generic opt_float opt_numeric
 %type  <str> 	opt_decimal Character character opt_varying opt_charset
 %type  <str>	opt_collate Datetime datetime opt_timezone opt_interval
@@ -3687,7 +3687,7 @@ a_expr:  attr
 				{
 					$$ = make4_str($1, make1_str(" in ("), $4, make1_str(")")); 
 				}
-		| a_expr NOT IN '(' not_in_expr ')'
+		| a_expr NOT IN '(' in_expr ')'
 				{
 					$$ = make4_str($1, make1_str(" not in ("), $5, make1_str(")")); 
 				}
@@ -4020,23 +4020,9 @@ in_expr:  SubSelect
 				{	$$ = $1; }
 		;
 
-in_expr_nodes:  AexprConst
+in_expr_nodes:  a_expr
 				{	$$ = $1; }
-		| in_expr_nodes ',' AexprConst
-				{	$$ = cat3_str($1, make1_str(","), $3);}
-		;
-
-not_in_expr:  SubSelect
-				{
-					$$ = $1; 
-				}
-		| not_in_expr_nodes
-				{	$$ = $1; }
-		;
-
-not_in_expr_nodes:  AexprConst
-				{	$$ = $1; }
-		| not_in_expr_nodes ',' AexprConst
+		| in_expr_nodes ',' a_expr
 				{	$$ = cat3_str($1, make1_str(","), $3);}
 		;
 
@@ -5647,7 +5633,7 @@ ecpg_expr:  attr
 				{
 					$$ = make4_str($1, make1_str(" in ("), $4, make1_str(")")); 
 				}
-		| a_expr NOT IN '(' not_in_expr ')'
+		| a_expr NOT IN '(' in_expr ')'
 				{
 					$$ = make4_str($1, make1_str(" not in ("), $5, make1_str(")")); 
 				}