I have another proposal if indeed the sys(3055) doesn't cure the problem. Bad bad VFP6.0.
Here's the workaround
instead of
THISFORM.grd.recordsource = m.tsql1 + m.tsql2 + m.tsqlx + m.twhere + m.torder + m.tinto
create the cursor by executing the SQL select
* create you commend line as a string
lcSql = m.tsql1 + m.tsql2 + m.tsqlx + m.twhere + m.torder + m.tinto
* then execute the command.
&lcSql
set the THISFORM.grd.recordsource to the cursor name you just created.
And maybe have the column properties reinitialised if needed.