Controversial slugger Barry Bonds has finally signed a new one-year deal with the San Francisco Giants.
Bonds needs 22 home runs to break Hank Aaron's record
The Giants said the contract was worth $15.8m (£8.1m) with potential incentives of another $4.2m (£2.15m).
Bonds, who is nearing Hank Aaron's US all-time home run record of 755, has been dogged by allegations - which he denies - that he used steroids.
A probe into whether he lied to a grand jury looking into the Balco scandal was one of the factors delaying the deal.
The 42-year-old's deal has also been agreed by Major League Baseball (MLB).
Bonds originally signed his contract last month, but the deal was rejected by MLB because of a dispute over clauses to do with player appearances.
The prolific Bonds will enter the new season needing 22 homers to surpass Aaron's record.
Team president Peter Magowan said in an interview two weeks ago that the team had legal protections in the contract if issues related to the Balco investigation keep Bonds off the playing field.
Bonds is expected to report for duty with the rest of the Giants players on Monday.
Last year Bonds played in 130 games. He tied for the club lead with 26 homers and led the National League with 115 walks and the major leagues with a .454 on-base percentage.