The fix
>
> if (pp_array[searchpos].id != id) searchpos--; // are we one too far?
>
should work (based on the 3.0 sources, where the error is revealed
as stemming from a >= in an if test where a != should have been used...).
Alternatively, one can call SysBinarySearch with the last parameter,
findFirst, set to true. Whilst this will have a performance impact in the case
of there actually being duplicated records, its performance impact in the
case of unique records is comparable to your fix.
robert mckenzie
[EMAIL PROTECTED]