workaround ========== Please comment whether the observations and the inferences made thereof are correct. Observations: 1 tagId0 is unused for most of the generated Decode functions 2 elmtLen0 has to have value INDEFINITE_LEN for decoding a buffer encoded in indefinite form, or the number of bytes as output by corresponding encode function 3 the coding is definite for most of my structures Inferences: 1 removing tagId0 from the parameter list won't effect 2 with observation 3, assumming valid encoded byte streams always, removing elmtLen0 from the parameter list and removing related checks, if (elmtLen0 == INDEFINITE_LEN) DDecEoc (b, &totalElmtsLen1, env); else if (totalElmtsLen1 != elmtLen0) longjmp (env, -101); won't effect the functionality. Also, these checks are the only location in the decode function where elmtLen0 is used. 3 removing the two parameters as in 1, 2 above results in a prototype (for the decode function) that solves the param mismatch problem and also gets rid of possible compilation errors.