Thousands of pro-democracy protesters gathered in Malaysia's capital to demand electoral reform, confronting a police lockdown that left the city a maze of razor wire and barricades.
Large crowds of people, many in the yellow colours of the reform movement, gathered at various points around Kuala Lumpur on Saturday, intent on defying a ban on holding the rally at Independence Square in the heart of the congested capital.
But a heavy police presence hindered access to the city centre, including about 2,000 armed police deployed around the sealed-off square as a police helicopter buzzed low overhead.
Opposition leader Anwar Ibrahim said demonstrators were intent on marching to the square, but admitted the lockdown would make that difficult.
"Yes, the plan by the opposition party leaders is to move to the square. The opposition alliance is committed to this," he told AFP.
National police spokesman Ramli Yoosuf said about 20,000 protestors had gathered at various locations around the square.
"Please obey the law and stay away from the square. It is a banned area," he said.
The mass rally follows one that was crushed by police last July, when 1,600 people were arrested, and marks a major test for Prime Minister Najib Razak, who has sought to portray himself as a reformer ahead of widely expected polls.
Organisers planned to gather at Independence Square from 2:00 pm (0600 GMT) for a sit-in seeking change in a voting system they say is riddled with fraud.
But that looked unlikely as authorities declared the square -- where the Malaysian flag was first hoisted in 1957 after independence from Britain -- off-limits.
On Friday, it obtained a court order banning public gatherings there, provoking outrage from the opposition and rights groups who say the restrictions violate free speech and assembly.
Crowds were vocal but peaceful on Saturday, with a carnival atmosphere prevailing in some areas as people held balloons while others smiled as they snapped photographs of themselves in front of the razor wire.
"The government is being high handed in denying the people the changes we want. We demand free and fair elections," said Zainuddin Tahar, 54, a pensioner from central Malaysia, who wore a yellow shirt.
A sign stuck on the razor wire at one point said "Welcome to Tel Aviv."
There were no reports of any violence or arrests.
Last July's rally brought tens of thousands to the streets but was met with police tear gas and water cannon.
A resulting backlash prompted Najib to set up a panel whose eventual report suggested a range of electoral changes, but main rally organisers Bersih 2.0 and the opposition say the recommendations fell far short.
They demand a complete overhaul of a nationwide voter roll they say is packed with phantom or duplicate voter registrations, and reform of an Election Commission viewed as biased in favour of the ruling coalition.
Speculation is rife that Najib could call polls as early as June, and Bersih is demanding elections be postponed until full reforms are implemented.
"People want a clean electoral roll. The government is refusing to do that. Because of this they are getting angry and are out here today," Anwar said.
The rally poses a dilemma for Najib, who since last year's crackdown has sought to portray himself as a reformer, launching a campaign to repeal authoritarian laws in a bid to create what he called "the greatest democracy".
But while giving the go-ahead for Saturday's rally, his government ruled out the city centre, instead offering several stadium venues. Bersih has declined, saying demonstrating at the square was a basic right.
Critics have said the rally restrictions and alleged harassment of activists in recent days have exposed Najib's reform promises as insincere.
"Today is a major test case for basic freedoms in Malaysia, starting with the right to peacefully march and assemble," Human Rights Watch said in a statement.
Najib's ruling coalition has governed Malaysia for more than five decades but made a dismal showing against the opposition in 2008, and he face pressure to improve on that.