The problem is that in the old code the "check[]"
array could be completely filled in the statement

check[loc] = from[k];

when the index "loc" reaches "(maxtable-1)".

Then there would be no space left for at least one "(-1)" at the end
of the "check[]" array and the index "lowzero" could end up pointing
outside proper bounds in the following loop near the end of the same
function:

while (check[lowzero] != -1)
++lowzero;

I would appreciate someone checking this fix, and, if correct, adding
it to a publicly available archive since I have no means of doing
so. Mailing me the article would be nice too, since I would hate to
miss the consequent postings :-).