Singapore police arrest death penalty book author

Singapore police arrested British author and journalist Alan Shadrake one day after the launch of his book about the country's use of the death penalty.
Shadrake, 75, was arrested on Sunday morning at a hotel in Singapore and taken into custody by police on charges of criminal defamation, in response to a complaint lodged by the city-state's Media Development Authority (MDA) over the contents of his new book, Once a Jolly Hangman: Singapore Justice in the Dock. Separately, the Attorney-General served Shadrake with an application for an order of committal for contempt of court, accusing him of "cast[ing] doubt on the impartiality, integrity, and independence" of Singapore's courts through his book.
Shadrake's latest book discusses alleged "double standards" in the country's application of the death penalty, and contains interviews with local human rights activists, lawyers, and former police officers, including retired Changi Prison executioner Darshan Singh; Singh later claimed that he had been "tricked" into the interview. In earlier media comments, Shadrake stated that he expected "trouble" but no concrete action from authorities over his book, lest they draw even more attention to its claims. Retailers took his book off shelves after inquiries by the MDA; a spokesman for the MDA stated that the book was not banned, but suggested that booksellers "seek legal advice to ensure that the books they sell do not contravene Singapore laws".
Shadrake has written for a variety of newspapers, including The Daily Telegraph of London as well as the New Straits Times of neighbouring Malaysia. His previous book, The Yellow Pimpernels, told the tale of various attempts to escape from East Germany over the Berlin Wall. If convicted, he faces a two-year imprisonment and a fine.

