Despite protest from opposition benches, the National Assembly adopted the revised Protection of State Information Bill on Tuesday.
The highly contentious Bill will now go back to President Jacob Zuma for assent after 225 MPs voted in favour of the proposed law, and 88 voted against it.
In September, Zuma referred the Bill back to the assembly, citing two sections of the Bill he deemed unconstitutional.
It was required to correct a cross-reference in section 42 and a punctuation error in section 45 that in effect rendered meaningless a hard-won safeguard on the state's powers to classify information.
An ad hoc committee then pushed through 30 typographical and grammatical corrections to the Bill.
Introducing the revised Bill on Tuesday, State Security Minister Siyabonga Cwele said Zuma should be congratulated for identifying the technical errors in the Bill.
"What caused the problem first of all … technical errors in the Bill sent to him, some of them so material they could be challenged by members of public … ," said Cwele.
'Not back down'
Democratic Alliance parliamentary leader Lindiwe Mazibuko said opposition parties would continue in their effort "to not back down in the face of this assault" on democracy.
She singled out the definition of national security in the Bill, which was too broad, infringing on South Africans' right to access to information.
"The DA fully supports correcting anomalies … much more needs to be fixed and the honourable president knows this," said Mazibuko.
She would again petition the president to not sign the Bill into law.
"The DA will not give up fighting this Bill. We will not stop until it's brought completely in line with the Constitution."
Several other opposition parties held similar views and said the Bill remained open to a challenge in the Constitutional Court. – Sapa