In Text.Parsec.Token, the list of reserved names is not necessarily sorted for case-insensitive languages.  When the list of reserved names contains a string with capital letters, the 'identifier' combinator can accept identifiers that conflict with reserved names.  Attached are patches for Parsec 2.1 and 3.0.

Please let me know if there's anything else I can do to ensure this patch makes it to the next release of the Haskell Platform.

Thanks,
Greg