Here is the simulation code. Try it on your own. You'll be amazed. Or, maybe someone knows why this is happening like that.
Basically, the facts are like this. If you run the same approach in a non class environment, it'll work. No matter if the error is from a COUNT or from a SELECT or anything else. It will always work. If you put the same code within a class environment such as the following code, you'll see that the SELECT line, if you switch the commented lines will work but the COUNT will create a problem.
loProcess=CREATE('FournierTransformation')
loProcess.ShowMessage()
DEFINE CLASS FournierTransformation AS Custom
FUNCTION ShowMessage
loProcess.ShowMessage2()
MESSAGEBOX('ShowMessage1')
ENDFUNC
FUNCTION ShowMessage2
COUNT FOR IRegion=lnRegion
MESSAGEBOX('ShowMessage2')
ENDFUNC
FUNCTION Error
PARAMETER nError,cMethod,nLine
RETURN TO ShowMessage
ENDFUNC
ENDDEFINE
That code will show ShowMessage2 and ShowMessage1.
Comment COUNT line and uncomment SELECT line and you'll get ShowMessage1.