A packed passenger bus negotiating a downhill curve plunged off a Philippine mountain highway into a 30-metre ravine Wednesday, killing 41 people, police said.

Nine people survived, including a 10-year-old boy, and eight were taken to hospitals, said police Chief Wilben Mayor of Benguet province north of Manila.

Mayor said most of the victims were pinned to death while others were thrown out as the bus tumbled down. Working into the night, emergency workers recovered the last of the 41 bodies from the twisted wreckage, said regional disaster agency director Olivia Mercado-Luces.

Twenty-six have been identified so far, including four members of a Filipino-American family who were on their way back to the U.S. after visiting relatives in the northern Philippines. An Indian national living in the Philippines also died.

The bus zoomed between a tree and a house and plunged into the ravine, Mayor said. The driver, who survived with a broken leg, would be investigated, he said.

John Patrick Flores, the bus conductor, told The Associated Press by telephone that the brakes on the bus failed as the driver was negotiating a downhill curve.

He said the driver was aiming to hit a lamppost to stop the bus from falling but missed and it jumped over a 30-centimetre-high road barrier.