A. A child this age is like a stand-up comic on truth serum: He's learning new words at breakneck speed, is acutely aware of physical differences, and has virtually no self-control, a combination that makes him master of the spontaneous put-down. But he really doesn't mean to hurt anyone's feelings. My youngest, Ellie, once sang, "Mary had a little man, little man, little man..." just as a very short guy passed by. She thought she was being funny and clever -- after all, he was a little man. I wanted to be beamed up.
To help keep your child's accidental insults at bay, you could try reminding him before you head out of the house that remarks about someone's appearance or abilities can be hurtful, even -- or especially -- if they're true. That last part's important, because preschoolers already think they know what's bad to say: lies and swear words. It doesn't occur to them that telling the truth can also be wrong.
Explain that comments about how somebody looks, acts, or talks should stay inside his head and not come out of his mouth until you get home. This will encourage him to think before he speaks and give you the chance to discuss people's differences in a meaningful way, out of earshot of those who might be offended.
Of course, despite your reminders, you'll probably find yourself in a similar situation again. Quietly apologize to the offended party, then pull your child aside and explain for the 19th time why commenting on someone's appearance is inappropriate.