diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer
index 6ef9f1a..3a7dbed 100644
--- a/src/interfaces/ecpg/preproc/ecpg.trailer
+++ b/src/interfaces/ecpg/preproc/ecpg.trailer
@@ -1867,8 +1867,22 @@ Iresult:        Iconst			{ $$ = $1; }
                 | ColId                 { $$ = $1; }
 		| ColId '(' ColId ')'   { if (pg_strcasecmp($1, "sizeof") != 0)
 						mmerror(PARSE_ERROR, ET_ERROR, "operator not allowed in variable definition");
-					 else
-						$$ = cat_str(4,$1, mm_strdup("("), $3, mm_strdup(")"));
+					  else
+						$$ = cat_str(4, $1, mm_strdup("("), $3, mm_strdup(")"));
+					}
+/*
+		| ColId '(' simple_type ')'
+					{ if (pg_strcasecmp($1, "sizeof") != 0)
+						mmerror(PARSE_ERROR, ET_ERROR, "operator not allowed in variable definition");
+					  else
+						$$ = cat_str(4, $1, mm_strdup("("), $3, mm_strdup(")"));
+					}
+*/
+		| ColId '(' s_struct_union ColId ')'
+					{  if (pg_strcasecmp($1, "sizeof") != 0)
+						mmerror(PARSE_ERROR, ET_ERROR, "operator not allowed in variable definition");
+					  else
+						$$ = cat_str(5, $1, mm_strdup("("), $3, $4, mm_strdup(")"));
 					}
                 ;
 
