Hi,
the patch is now in attachement..

I think, that the statement
    if (!vm)
         vm = *pnext;
will never be executed: in the first pass, we have already check this a few lines before; in next passes, vm remains the same...

Anton