An explosion blamed on a gas leak has rocked Iran's largest oil refinery shortly before the arrival of President Mahmoud Ahmadinejad for a scheduled visit, an Iranian news agency has reported.

The semi-official Fars news agency said the blast occurred on Tuesday morning, just before Ahmadinejad was to inaugurate an expansion project at the refinery in the south-western city of Abadan. At least 20 people were injured in the blast, which set off a fire at the site, the report said. The explosion was blamed on a "gas leakage" but there were no further details.

Another report, by the semi-official Mehr news agency, said at least two people were killed and that the explosion happened while Ahmadinejad was visiting. It said the president ordered a special plane to airlift the critically injured to Tehran.

State television, meanwhile, said the explosion happened after Ahmadinejad had left the site. A live broadcast showed the president speaking to local officials at the refinery.

Fazel Kaebi, an Abadan resident, told the Associated Press that he saw ambulances and rescue teams rush to the site shortly after the explosion. He said residents had noticed black smoke coming from the refinery in the past few days, which he speculated could have been from a fire.

During his speech in Abadan, shown on state TV, Ahmadinejad appeared unperturbed and attacked the country's enemies, telling officials that Iran was able to meet all its domestic oil needs.

"The hopes of Iran's enemies in imposing pressure through restrictions on the sale of oil products have turned into a complete disappointment," he said.

Iran has in the past launched expansion projects at refineries to stave off the effect of western sanctions on fuel sales to Iran over its controversial nuclear programme. The west suspects Iran is pursuing nuclear arms, a charge Tehran denies. It says its nuclear programme is for peaceful energy production.

Hamid Reza Katouzian, a member of the parliament's energy committee, told Mehr that he had warned about the risk of explosions because the Abadan refinery was not ready for an expansion.

Katouzian said the blast was not an act of sabotage but happened "because of a lack of readiness at the refinery".

The expansion is aimed at increasing fuel production in the refinery by more than a third. The century-old refinery, one of eight across the country, is the biggest one in Iran and refines 43,000 barrels a day.