Former South African President Nelson Mandela is "looking much better" after being treated for a lung infection and gallstones, but he would remain in hospital for the time being for extra care, a presidency spokesman has revealed.

The country's first black president and anti-apartheid hero, who is 94, was admitted to a Pretoria hospital on December 8 after being flown from his home village of Qunu in a remote, rural part of the Eastern Cape province.

He was treated initially for a recurrent lung infection and then had a successful procedure to have gallstones removed.

Presidency spokesman Mac Maharaj said he visited Mandela on Tuesday (overnight, NZ time). "He is looking much better," he said in a statement, adding that the Nobel Peace laureate had spoken to him.

Doctors were satisfied with his progress, Maharaj said.

"They say there is no crisis, but add that they are in no hurry to send him home just yet," he added.

"He is 94 years old and needs extra-ordinary care. If he spends more days in hospital, it is because that necessary care is being provided," Maharaj said.

Mandela spent 27 years in apartheid prisons, including 18 years on the windswept Robben Island off the coast of Cape Town.

He was released in 1990 and went on to use his unparalleled prestige to push for reconciliation between whites and blacks as the bedrock of the post-apartheid "Rainbow Nation".

He stepped down in 1999 after one term in office and has been largely removed from public life for the last decade.