// Adds dimensions UUID, Author and Topic into GA4
Monday, June 22, 2026
27.2 C
Singapore

China denies allegations of forced labour at Shanghai prison

China Monday denied allegations that prisoners were being used for forced labour, after a British newspaper reported that a London schoolgirl found a message in a Christmas card claiming to be from inmates at Shanghai’s Qingpu Prison.

Supermarket giant Tesco said at the weekend it had stopped production at a factory in China after one of its charity cards was found to contain a cry for help from a prisoner who made it, according to the Sunday Times newspaper.

But Beijing rebuffed the claims, which it said were “made up”.

“I can tell you responsibly that, after seeking clarification from relevant departments, Shanghai Qingpu prison does not at all have … forced labour by foreign convicts,” said foreign ministry spokesman Geng Shuang at a regular press briefing in Beijing.

Geng also attacked former journalist Peter Humphrey who wrote the article — who was himself detained in Qinqpu prison until his release in 2015 — and said he had invented a “farce” to “hype himself up”.

The note written in the card asked the person who found it to contact Humphrey, which the schoolgirl’s father did. Humphrey then took the story to the Sunday Times.

“We are foreign prisoners in Shanghai Qingpu Prison China,” said the message, in a charity card featuring a kitten in a Santa hat

“Forced to work against our will. Please help us and notify human rights organisation.”

© Agence France-Presse

- Advertisement -

Hot this week

British expats debate life in Singapore: ‘Upgrade’ or ‘hot and sticky’?

Covering reactions to a Telegraph article about a family that moved from Kent to Singapore.

‘Social media was never the problem’: Malaysians divided over under-16 social media ban

The story explores Malaysia’s new under-16 social media restriction, highlighting the balance between protecting children online and addressing concerns over privacy, age verification, and the pote...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks