The governing African National Congress (ANC) has pushed a bill through South Africa's parliament to protect state secrets, despite strong objections from opposition politicians including white conservatives and black nationalists who were enemies under apartheid.
Opponents, who include church and business leaders and Nobel laureates, say the measure will keep government corruption under wraps, stifle whistleblowing and undermine the hard-won democracy created with apartheid's end 17 years ago.
The ANC said South Africa needed to update apartheid-era legislation defining secrets and setting out punishments for divulging them, and that it had no intention of trampling on free expression and a muck-raking media.
Opponents had expected parliament, where the ANC has a large majority, to approve the bill. They were already preparing to challenge the measure at the Constitutional Court if it becomes law.
Tuesday's 229-107 vote, during a lively session that saw ANC and opposition politicians trading barbs, came after months of fierce debate. The bill's critics included two Nobel prizewinners: retired Archbishop Desmond Tutu, a peace laureate, and literature laureate Nadine Gordimer.
The office of Nelson Mandela, South Africa's first post-apartheid president and also a Nobel peace laureate, has also expressed reservations about the bill.
Parliament's upper house could ask for revisions, but that rarely happens. President Jacob Zuma will have to sign the bill to make it law, and while his legal advisers may ask for revisions, he was expected to approve the measure.
Critics donned black and staged protests at the ANC's Johannesburg headquarters during morning rush hour and in the afternoon outside parliament in Cape Town as MPs voted, saying the bill's weaknesses include its lack of a provision allowing those who break the law to avoid going to jail if they could argue they acted in the public interest.
If implemented, the bill "will unacceptably curtail both the right to access information and freedom of expression, which are the foundation of a democratic society", said Daniel Bekele, Africa director at Human Rights Watch.
"The manner in which the government pushed this bill through parliament, instead of proceeding with consultations as promised, as well as the secrecy embedded in this legislation, send very worrying signs about the government's commitment to transparency."