It's not a bug, it is expected behaviour.

Expressions are coerced to the same type as the value on the LHS of the comparison operator. You are coercing a string type to a numeric type, and the *numeric* value of the string "a" is zero so the expression is true.

It is no more incorrect than the following which is also true.
 Code:
If 123 = "12" + "3 Green Bottles"
	"They match!"+@CRLF
EndIf


The correct coding for what you are expecting would be:
 Code:
If CStr(0) = "a"
	"Can't possibly be true"+@CRLF
EndIf


Edited by Richard H. (2011-06-01 04:13 PM)