Ukraine MPs pass laws to stop poll fraud
However, the deal means that the next president will have far fewer powers than his predecessor.
Current Prime Minister and Moscow favourite Viktor Yanukovich had been declared the winner of the widely-criticised November 21 run-off elections which were later cancelled by the Supreme Court.
The compromise followed days of negotiations involving the president, local politicians and senior figures from the EU, Russia, Poland and Lithuania.
Opposition leader, Viktor Yuschenko, who says the election was stolen from him in a massive fraud last month, was reluctant to agree to President Leonid Kuchma's plans to move powers away from the president to the parliament and regional bodies.
Mr Kuchma's move, first put forward and rejected earlier this year, is seen as an attempt by him to continue to hold power after he leaves office.
The 66-year-old former rocket scientist is a key figure among the country's three powerful clans that control business and politics in an increasingly corrupt country.
Last night it was still not clear if the street protests would continue.
Mr Yushchenko has told the thousands of his supporters who have been keeping a vigil in Kiev's main square and blockading government and presidential buildings for over two weeks to disperse.
However, more than 1,000 protesters will remain in the square until the election re-run.
The Parliament voted through both sets of amendments yesterday by an overwhelming 402 to 21. Part of the deal was that Mr Kuchma was on hand to sign it into law immediately. He also fired the country's prosecutor general as demanded by the opposition.
As a result of the changes, the country will have a new Central Election Commission chosen from a list put forward by Mr Kuchma. He has fired the chairperson but re-appointed 11 of the 15 members. All but four members of the commission said that the last election was fair and honest.
Other measures, including an end to portable ballot boxes and a tightening up of the voting procedure, were also agreed. This is seen as strengthening the prospects of Mr Yushchenko winning the December 26 vote.
However, the winner will no longer be able to make all the appointments to the top posts in government. He will be able to name his prime minister, foreign and defence minister, but Parliament will have to approve these also.
After the vote, the parliament speaker Volodymyr Litvin said: "This is an act of consolidation and reconciliation that proves Ukraine is united and indivisible."
Government parties have been painting the election controversy as an attempt by pro-western forces led by Mr Yushchenko to become the dominant force in the country and suppress the country's Russian-speaking population.