diff --git a/src/interfaces/ecpg/preproc/variable.c b/src/interfaces/ecpg/preproc/variable.c
index e08e14ac18ceb7f3e3b1c4930cbde82e90b38c32..6ff574bbd9213296bb77fe408b1259794b60c903 100644
--- a/src/interfaces/ecpg/preproc/variable.c
+++ b/src/interfaces/ecpg/preproc/variable.c
@@ -100,7 +100,11 @@ find_struct_member(char *name, char *str, struct ECPGstruct_member * members, in
 						}
 						break;
 					case '-':
-						return (find_struct_member(name, end, members->type->u.element->u.members, brace_level));
+						if (members->type->type == ECPGt_array)
+							return (find_struct_member(name, ++end, members->type->u.element->u.members, brace_level));
+						else
+							return (find_struct_member(name, ++end, members->type->u.members, brace_level));
+						break;
 						break;
 					case '.':
 						if (members->type->type == ECPGt_array)