Surrey have signed former South Africa batsman Hashim Amla on a two-year Kolpak contract.
The 36-year-old retired from international cricket in August as the Proteas' second-highest Test run scorer with 9,282 runs in 124 matches.
Amla is the only South Africa batsman to score a Test triple hundred - 311 not out against England in 2012.
He was Test captain between 2014 and 2016, scoring 28 centuries and averaging 46.64.
"Surrey are one of the most established and accomplished cricket clubs in the world and I am very excited to be joining them again," he told the Surrey website.
"I was part of the Surrey team in 2013 and 2014 and thoroughly enjoyed myself during those stints, so to rekindle that relationship for a longer period is something that excites me. I'm really looking forward to working with Alec Stewart and the rest of his team."
Amla joins former South Africa team-mate Morne Morkel at 2018 County Championship winners Surrey, who had been looking for an experienced batsman with Ollie Pope and Rory Burns likely to be away on England duty for extended periods of next season.
As well as his two previous spells with Surrey, he has also played for Essex, Nottinghamshire, Derbyshire and Hampshire.
In total, Amla scored more than 18,000 runs across all formats for South Africa with 55 centuries in 349 matches and has been ranked as the number one batsman in both Test and one-day international cricket.
He scored 27 one-day international centuries, the most by a South Africa batsman, and scored 8,113 runs at an average of 49.46 in the format.
"With several of our players now in or around the international setup, the opportunity to bring Hashim back to Surrey was too good to ignore," said Surrey director of cricket Alec Stewart.
"His record speaks for itself and we know from his previous spells here that he will be an excellent resource for all of our players to learn from both on and off the field."
Amla's career in numbers
- Tests: 124, 9282 runs, average 46.64, 28 hundreds, highest score 311*
- ODIs: 181, 8113 runs, average 49.46, strike-rate 88.39, 27 hundreds, highest score 181
- T20Is: 44, 1277 runs, average 33.60, strike-rate 132.05, highest score 97*