>Never seen something like this, but if you are distributing an exe, then
>you should md5 it so you can detect any change comparing with a saved md5.
>
>This way I've found viruses that changed parts of the code and antiviruses
>have cleaned them up, but leaving the exes in a different state than the
>original, sometimes even unrunnable.
That's a really good idea.
As it turns out, I'm embarrassed to say, the line of code reported in
the trace does exist, in a virtually identical list control subclass
on the same form (one overlays the other exactly). I wasn't paying
attention to the name of the control in which the error occurred.
There are actually 10 columns in the array in this method.
So what actually happened is that somehow, between:
FOR m.x = 1 TO ALEN(THISFORM.oMail.aSortList,1)
and
thekey = THISFORM.oMail.aSortList(m.x,10)
somehow the length of the array got truncated.
Now, there is NO other code between those two lines, so
ALEN(THISFORM.oMail.aSortList,1) would have had to return an
impossible result for the next line to fail.
I have seen this on a few occasions when iterating arrays, but I
remain mystified as to how it could happen.
Ken