Indonesian lawmakers on Monday approved a revised budget in a move that paves the way for the first hike in fuel prices since 2008 amid nationwide protests against the measure.
As masked protesters hurling Molotov cocktails clashed with police outside the national parliament in Jakarta, lawmakers inside voted 338 to 181 in favour of the state budget following more than 10 hours of debates.
The budget contains extra financial assistance for the poor to shield them from the impact of a rise in the price of fuel, which is expected to increase around 33 percent.
President Susilo Bambang Yudhoyono previously said such measures were necessary before he would hike fuel prices.
Indonesia has long been under pressure to reduce fuel subsidies, with economists warning that the payouts gobble up a huge chunk of the state budget and are doing major damage to Southeast Asia's top economy.
However, millions are against lowering the payouts, which would push up the cost of living, and huge protests have in the past forced the government to abandon plans to hike the fuel price.
Following parliament's approval of the budget, Finance Minister Chatib Basri told lawmakers: "I am grateful. With the great commitment of parliament and the government, we have been able to finalise the... budget."
The new budget contains financial assistance for millions of poor households, in the form of 150,000 rupiah a month ($15) over the next four months, to soften the impact of the increase in prices.
Fuel prices are expected to be hiked from 4,500 rupiah ($0.46) a litre -- one of the cheapest in Asia -- to 6,500 rupiah for petrol, and from 4,500 rupiah a litre for diesel to 5,500 rupiah.
The government seems determined to hike fuel prices on this occasion despite the public anger that the move has generated. On Monday, thousands staged demonstrations across the country.
About 3,000 protesters gathered outside the gates of parliament in Jakarta, and as night fell some began hurling Molotov cocktails, fireworks, rocks and bottles at security forces around the legislature.
Police fired back numerous volleys of tear gas at the protesters, many of whom had their faces covered and were waving banners reading "Reject the fuel price rise" and "Hang SBY" (Yudhoyono).
Two heavily armoured police vehicles rolled out of the grounds of the parliament and fired water cannon in a bid to disperse the demonstrators.
"All Indonesians must take to the streets so that the government won't hike the fuel price," one of the protesters, 24-year-old Slamet Riyadi, told AFP.
About 19,000 police and military personnel were deployed across Jakarta, police said.
Protests also flared in other parts of the country. In the city of Ternate, in the eastern Maluku islands, five protesters, a journalist and seven policemen were injured at a demonstration, police said.
In Jambi, a city on Sumatra island, hundreds of protesters tried to storm the local legislature but police dispersed them by firing tear gas, police said.