That's exactly what happened. Thanks.
>It would happen if index on the cursor is set to bondky. The REPLACE will effectively change position of the record in the index causing behavior you describe. SET INDEX TO will fix it. Also it can be done with UPDATE command
>
>UPDATE curRedemptions ;
> SET bondky = bond.ky ;
> FROM curRedemptions JOIN bond ON bond.proj = curRedemptions.Project
>
>
>>The following code is simple and straighforward, but when I do the replace statement, the last record in cursor is updated instead of the first, and the scan terminates. I've never seen this before. Any clues?
>
>>Scan
>> lcProject = Alltrim(Project)
>> If Seek(lcProject, "bond", "proj")
>> liBond = bond.ky
>> Replace bondky With liBond In curRedemptions
>> Endif
>>Endscan
>