On free speech in general, I still stand by what I said about this cartoon at XKCD doesn't understand free speech—or the difference between legal and moral rights.
But it took some discussion in the comments there before I realized how badly XKCD had addressed the issue if it's supposed to apply to Brendan Eich, the Mozilla CEO who donated $1000 to defeat gay marriage in California and, according to Mozilla Co-Founder Brendan Eich Resigns as CEO, Leaves Foundation Board, "repeatedly declined to answer when asked if he would donate to a similar initiative today."
Money is not speech. Eich was not stating his belief; he was using dollars most of us do not have to suppress a basic human right, the right to marry the person you love. His case is a classic example of capital versus democracy. When the privileged use their wealth against the people, it's right to respond with the people's tool, the boycott.
That said, I agree with the gay folks who signed the petition at Freedom to Marry, Freedom to Dissent: Why We Must Have Both: "People must be allowed to be wrong in order to continually test what is right. We should criticize opposing views, not punish or suppress them."
When people use words against you, respond with words. When the rich use their wealth against you, target their wealth.