Republican presidential hopeful Rick Perry was heckled yesterday over a promotional ad which says there is “something wrong with our country” when gays can serve in the military, but children cannot “celebrate Christmas or pray in school”.

The Texas governor, who has pledged to “fight against liberal attacks on our religious heritage”, was touring Ames in Iowa when he was confronted over the video.

Mr Perry was speaking to voters in a coffee shop on Sunday when one person shouted: “Why are you demonising gay and lesbian people?”

Another onlooker, 24-year-old Jason Arment, added: “Why can’t gays serve in the military?”

Mr Arment, who is straight, later told the Los Angeles Times that he was a former Marine and had found Mr Perry’s ad “extremely offensive”.

In the ad, titled “Strong”, the politician says: “I’m not ashamed to admit that I’m a Christian, but you don’t need to be in the pew every Sunday to know there’s something wrong in this country when gays can serve openly in the military but our kids can’t openly celebrate Christmas or pray in school.

“As President, I’ll end Obama’s war on religion. And I’ll fight against liberal attacks on our religious heritage.

“Faith made America strong. It can make her strong again.

“I’m Rick Perry and I approve this message.”