Capital city Kuala Lumpur was shrouded in 'unhealthy' levels of haze for a second straight day as smoke continued to drift from Indonesian forest fires.

The air pollutant index in Kuala Lumpur registered 101, within the range of 101-200 categorised as unhealthy.

It is the only city with 'unhealthy' air quality in the country, while a number of areas in Johor registered near unhealthy levels.

However, at 5pm when a second measurement was done by the Department of Environment , Kuala Lumpur has been reclassified as having 'moderate' air quality with its API reading dropping marginally to 98.

But three areas in Johor moved into unhealthy levels - Johor Bahru (109), Larkin (106) and Muar (104).

Meanwhile, air quality cleared in other parts of the country, including in Sabah and Sarawak which were badly affected in recent weeks.

Poor visibility

Visibility at Kuala Lumpur international airport fell this week to three kilometres, well down on the normal 10km, but officials said it had not affected air travel.

Singapore's air quality was also poor this week, registering in the unhealthy range for the second day on Tuesday and prompting the government to warn people with heart or respiratory conditions to stay inside and avoid exertion.

Indonesian farmers burn forests annually to clear land for agriculture, causing a haze that spreads across the region during the dry season, affecting tourism and increasing health problems.

Environment ministers from Singapore, Malaysia and other regional nations have urged Indonesia to ratify a treaty aimed at preventing cross-border haze pollution.