Eugene and I think fairly similarly in matters of language, and I don't disagree with anything he's said so far. However, I want to make a more radical statement. Perhaps Eugene agrees with it, but I want to express it more nakedly. There is no such thing as the English language. Every person speaks slightly differently, understands a slightly different set of words, uses words slightly differently. When we say that a set of people "speaks English," this is a sloppy shorthand that means that when each of them speaks the way he normally speaks, the other people in the set can mostly understand what he's saying, and the meaning he's trying to convey is more or less the meaning they get. It's just an empirical statement about the degree of overlap between each person's "language."
This is all well and good, and we can keep using the shorthand of talking about "speaking English" for most purposes. Where the shorthand reveals its sloppiness, though, is when we see different people using different forms, possibly mutually incomprehensible forms, and say that one of them is "right." [emphasis in original]
Interesting thoughts in the comments, too.