South Sudanese soldiers have recaptured the key town of Bor, defeating an army of thousands of rebels, according to an army spokesman.

Bor is the capital of Jonglei state and situated 200km north of the capital Juba. The town has changed hands four times since the conflict in the world's youngest nation began five weeks ago.

"Today the gallant SPLA forces entered Bor, they have defeated more than 15,000 forces of (rebel leader) Riek Machar and frustrated his plans to attack Juba," Philip Aguer, army spokesman, said on Saturday.

Ateny Wek Ateny, spokesman for President Salva Kiir, said the troops had been "congratulated for a job well done".

He also said the Sudan People's Liberation Army (SPLA) would "observe international rule of law" - a day after a high-level UN rights envoy reported that the conflict has been marked by mass killings, extra-judicial killings, widespread destruction and looting.

"If there are people captured they should be kept in regards to the international law," the spokesman said.

Government troops were battling rebel forces on Saturday for control of the key oil town of Malakal, the army said, though it admitted having trouble contacting its commanders on the ground.

"Communication is still difficult. We will find out today how the fighting ended yesterday. We still feel we're still sharing Malakal with the rebels, but by the end of the day (the army) must clear the rebels from Malakal," Aguer told AFP news agency.

The UN says 468,000 people have fled their homes because of the fighting, which has escalated into ethnic killings between members of Kiir's Dinka people - the country's largest group - and Machar's Nuer.

Up to 10,000 people are believed to have been killed so far in the conflict.

Source: AFP