How would we fix them?

unlikely but possible. There should be a legal room in the constitution, to criticise anyone.
However name calling, or hate mongering is alltogether a different story.

If somebody does not like Prophet Mohammad, that is fine. We have hindus and christians on our country and I don't think they will be onboard with the rest.

We should allow everybody express themselves in a respectable manner, and you have a right to agree or disagree. In our society, anger replaces the argument and such uproars put a road block to any non-mainstream ideas or ideology.