I know these guys have many of the answers and I may be wrong. But I have a 6 level join that runs about twice as fast as the where filter. All of the variables are indexed so I think it has something to do with the way VFP6 reads the statement. One important point - the table sizes on one of the indexes is very large. So I hope that helps. John