Okay, I think it's caused by how string.ToLower creates different results in different countries. I changed it to string.ToLowerInvariant, so it'll be consistent.
I can't be 100% sure if that fixed it. Could you tell me if it worked?