Police in Berlin have launched an investigation into officers suspected of using a chat group on their mobile phones to exchange racist messages about African and Muslim migrants, a police spokesman said on Thursday.

The allegations, first reported by ARD public television, was the latest blow to the reputation of German police, who are under pressure to take tougher action against those in its ranks with far-right sympathies.

In September, officials in the western German state of North Rhine-Westphalia (NRW) suspended 29 officers for sharing pictures of Adolf Hitler and doctored depictions of refugees in gas chambers on their mobile phones.

NRW’s interior minister said on Thursday disciplinary steps had been taken against another police officer and three members of the BfV domestic security agency who were suspected of exchanging xenophobic and Islamophobic videos in a chat group.

In a country with painful memories of the World War Two genocide of millions of Jews by the Nazi regime, some politicians have called for a national commission to investigate the extent of racism within the police and security services.

Interior Minister Horst Seehofer, a conservative ally of Chancellor Angela Merkel, has resisted such calls.

ARD TV’s Monitor programme discovered racist exchanges involving more than 25 policemen in Berlin through two whistleblowers, including an officer who was a member of the chat group.

A police spokesman said such messages are punishable by law.

“Based on our knowledge of the facts, we have immediately launched criminal proceedings and an investigation,” Berlin police spokesman Thilo Cablitz said in a statement.

NULL Invalid API key or channelobject(stdClass)#8418 (1) { ["error"]=> object(stdClass)#8443 (3) { ["code"]=> int(403) ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["errors"]=> array(1) { [0]=> object(stdClass)#8431 (3) { ["message"]=> string(117) "The request cannot be completed because you have exceeded your quota." ["domain"]=> string(13) "youtube.quota" ["reason"]=> string(13) "quotaExceeded" } } } }