Thank you Borislav. I'll report back if there is success or not. :-)
>>It's almost working, but 4 always equals 3 and I cannot see why.
>>Here's the latest code (attempt):
>>
>> SCAN
>> m.TheWord3 = ALLTRIM(LOWER(indicator))
>> IF m.TheWord3 $ lcTEXT AND ! m.TheWord3 == m.TheWord1 OR ! m.TheWord3 == m.TheWord2
>> REPLACE hits WITH indicator.hits + 1
>> m.sidenote3 = action
>> SELECT MASTER
>> REPLACE indicator3 WITH m.sidenote3
>> ENDIF
>> SELECT indicators
>> ENDSCAN
>> SCAN
>> m.TheWord4 = ALLTRIM(LOWER(indicator))
>> IF m.TheWord4 $ lcTEXT AND ! m.TheWord4 == m.TheWord1 OR ! m.TheWord4 == m.TheWord2 OR ! m.TheWord4 == m.TheWord3
>> REPLACE hits WITH indicator.hits + 1
>> m.sidenote4 = action
>> SELECT MASTER
>> REPLACE indicator4 WITH m.sidenote4
>> ENDIF
>> SELECT indicators
>> ENDSCAN
>>
>>
>>
>>
>>>Are you sure m.TheWord2 is in lcText? If the first condition fails, VFP won't do the second. Perhaps you want an OR instead of AND?
>>>
>>>If the IF logic is correct, create a small dataset with two records, one that you know will pass and one that won't. Step through the code with the debugger. Check values of the variables before going into the IF statement. Also, check the value of SET("EXACT") at that same point.
>>>
>>>
>>>>Thanks Craig and all who are helping. I've been using SET EXACT all along, but this little nipper is a PITA that has all indications of being one of those insignificant "I could have had a V8' moments. (something simple, but overlooked) I noticed that I misspelled 'sidenote' as 'sidenotes' also, but have replaced that portion below. Still no luck with this problem, but it's keeping my elderly brain working. :-)
>
>
>
>When you work with ANDs and ORs in one condition you must have brackets ALWAYS.
>
>
>
>m.TheWord3 $ lcTEXT AND ! (m.TheWord3 == m.TheWord1 OR m.TheWord3 == m.TheWord2)
>...
> m.TheWord4 $ lcTEXT AND ! (m.TheWord4 == m.TheWord1 OR m.TheWord4 == m.TheWord2 OR m.TheWord4 == m.TheWord3)
>
I ain't skeert of nuttin eh?
Yikes! What was that?