Nelson Mandela Hospital
Nelson Mandela at his home with US Secretary of State Hillary Clinton earlier this year (Reuters)

Former South African president Nelson Mandela is said to be well and is completing his recovery at his Johannesburg home after being discharged from hospital.

Mandela, 94, was receiving treatment in a Pretoria hospital for a lung infection and gallstones.

"He is sufficiently well to be home," government spokesman Mac Maharaj told a local television eNCA.

On Christmas Day, the Nobel Peace Prize laureate received current president Jacob Zuma, who said Mandela was in good spirits.

"He was happy to have visitors on this special day and is looking much better. The doctors are happy with the progress he is making," said Zuma.

Mandela entered hospital earlier in December for routine tests.

He remained in hospital for 18 days after gallstones were found and removed by surgery. It was Mandela's longest time in hospital since he regained freedom from the apartheid government in 1990.

The anti-apartheid leader had been suffering from lung troubles since he contracted tuberculosis in the 1980s while in detention on Robben Island prison as a political prisoner.

In January 2011, Mandela was admitted to a Johannesburg hospital for what officials initially described as tests but which turned out to be an acute respiratory infection.

After spending 27 years in prison, Mandela served as South African president from 1994-99.