Yeah, this is a special case ...
We might need some skype time for me to explain this.
In short - I detect that a compound is finished in the first path that is not a compound.
If a compound is the last item in a payload, that 'path that is not a compound' never comes.
I have no other means to 'end' the compound than to check after the parsing if a compound is still active, and if so, I end it.
The compoundValueEnd function is a very important function and it must be called for each of the compounds.