Kerry, his party's pick in 2004 who failed to defeat incumbent President Bush, said McCain's changed positions on the Republicans' tax cuts, climate change bills and immigration leave him shaken. Kerry paraphrased himself, telling the Democratic National Convention delegates: "Are you kidding? Talk about being for it before you're against it."
Kerry, a McCain friend for almost 22 years and fellow Vietnam War veteran, collaborated with the Arizonan in the 1990s on a Senate investigation of prisoners or war. The two enjoyed a close relationship and Kerry considered McCain as a vice presidential pick; he eventually chose North Carolina Sen. John Edwards.
Their ties have since dissolved as they have sparred on the current war in Iraq and Kerry has said McCain is a flip-flopper - a charge that hounded Kerry's campaign.
"To those who still believe in the myth of a maverick instead of the reality of a politician, I say, let's compare Senator McCain to candidate McCain," Kerry said.
"Let me tell you, before he ever debates Barack Obama, John McCain should finish the debate with himself."
Kerry's loss was, in part, to an independent group's attacks on him. The Swift Boat Veterans for Truth ran ads that misled voters about Kerry's own military service. His campaign was slow to react, and by the time they did, many voters believed Kerry lied about his war record.
McCain denounced those ads and defended his one-time friend. Four years later, some of the same folks have returned with ads critical of Obama's ties to a 1960s radical; McCain has refused to denounce them.
With a nod to his own failures, Kerry said "no one can question Barack Obama's patriotism."
Kerry also painted McCain as a warmonger who marched with Bush into Iraq. Quoting a New York Times profile of McCain, Kerry quoted McCain telling troops aboard an aircraft carrier just months after the Sept. 11 terrorist attacks: "Next up, Baghdad."