I don't want to be pedantic so I'll try to keep this short. One of the most common misconceptions among activists in the U.S. is that hate speech is not protected by the first amendment. In order to argue this they will often bring up the "fighting words" doctrine, discussed in Chaplinsky, to support the proposition that racist speech is or can be prohibited.
While I sympathize with the argument, the fighting words doctrine is far narrower than hate speech prohibitions outlined in the law of some European countries. Fighting words refers to words that are "so profane or injurious that by their very utterance incite an immediate breach of the peace." Since Chaplinsky, the Supreme Court has limited its application to abusive words spoken in a face to face confrontation.
An additional problem with the argument is that just because something is unprotected speech does not automatically make it illegal. Unprotected means it can be made illegal by a duly passed law. For instance, obscene material that fails the Miller test is also unprotected. It's likely some pornography would fail the Miller test, but some pornography that would fail the Miller test is not illegal because there is no law making it so. Likewise, "fighting words" must be proscribed by the legislature to be illegal which is difficult for two reasons.
In order for a law to avoid violating the first amendment it must be content-neutral. The legislature is not supposed to be deciding the content of what people say, only regulating the time/place/manner of the speech. Therefore, the fighting words law would have to be fairly general to be content-neutral. But if it's general, it might be void for vagueness under due process, because a law must be specific enough to let the potential offender know what kinds of acts could subject him to punishment.
I'm sure some of you have spoken to Americans who say "hate speech is not protected by the first amendment." But the answer is that most is and that which isn't usually is not illegal. Hate speech and fighting words are not the same.