Calvin,
The REPLACE command has a NEXT n option thqat specifies how many records should be replaced. The default scope for NXT is 1 when you don't specify anything. The scope is applied to the
currently selected wirk area unless you use the IN clause to specify the work area to use. If the current work area has no table open or is at EOF() then the NEXT 1 scope says No Records and no replace will occur.
The safest way to deal with this is to always specify the IN clause on the REPLACE command.