LOCAL laOffice(1) lnSecs = SECONDS() USE Z:\Useful\Offices SELECT *; FROM Offices; ORDER BY 1; INTO ARRAY laOffice USE IN Offices CREATE CURSOR Results(Cl_Ref C(8)) FOR o = 1 TO ALEN(laOffice, 1) WAIT WINDOW laOffice(o, 1) NOWAIT laOffice(o, 2) = ALLTRIM(laOffice(o, 2)) USE (laOffice(o, 2) + "client") IN 0 USE (laOffice(o, 2) + "property") IN 0 USE (laOffice(o, 2) + "foxguids") IN 0 SELECT DISTINCT Guid, Cl_Ref, *; FROM Client; LEFT JOIN Property ON Client.Pr_Code = Property.Pr_Code; LEFT JOIN FoxGuids ON FoxGuids.Table = 'Client' AND FoxGuids.PKey = Client.Cl_Ref; ORDER BY Cl_Sname, Cl_Fname, Cl_Dob; WHERE Cl_Sname = "LAWRENCE"; INTO CURSOR temp SELECT temp SCAN SCATTER MEMVAR INSERT INTO Results FROM MEMVAR ENDSCAN USE IN Client USE IN Property USE IN FoxGuids ENDFOR ?RECCOUNT("Temp") ?SECONDS() - lnSecsRepeatedly querying from same Client, Property, FoxGUIDS tables. Am I missing something here.