Arsenal striker Francis Jeffers has signed a two-year contract with Charlton in a £2.6m deal.
The 23-year-old shot to prominence as a teenager with Everton, scoring 20 goals in 70 games.
He joined Arsenal for £8m in 2001 but made just 39 first team appearances for the Highbury club.
Jeffers spent several months on loan back at Everton last season but manager David Moyes decided against taking him back to Goodison Park permanently.
Alan Curbishley said he hoped the switch would bring the best out of Jeffers.
"He needed a change and he's exactly the sort of player I like to sign
because I feel he's angry and hungry after the last couple of years," Curbishley told the club's official website.
"I'm hoping that we can put his career back on track."
Jeffers has been prolific at international level, scoring a record-equalling 12 goals in 12 games for England Under-21s.
The striker moved to Arsenal for £8m in the summer of 2001.