"The jokes have been bad and the substance has been bad," David Cameron observed halfway through PMQs. He was entirely correct about his opponent's performance, and, as it happened, about his own.
Ed Miliband is now so full of confidence he can barely wait to get going. He sits smiling, eagerly looking to the Speaker to call him, like a child in class who knows the answer. He was beaming ear to ear even as Cameron got in a preliminary attack for his "opportunism" on the EU budget. The difference on a couple of years ago is extraordinary, although he may be getting carried away slightly. His performance today did nothing to merit his enthusiasm. But then, the government shows little sign of ending its perpetual gaffes, so there are still reasons for his disposition. He must feel the sun on his back.
Miliband's newest tactic is to whip his MPs to support a Tory rebel amendment demanding a cut, rather than a freeze, in the EU budget. Cameron repeated himself as soon as the Labour leader stood up, saying again that the "whole country sees through his opportunism". Seconds later he said it a third time. The prime minister was in particularly bad form today, probably in anticipation of tonight.
Miliband was initially much better, particularly when he quoted from Cameron's comments as opposition leader demanding a cut in the EU budget. Cameron countered with a reference to Miliband's MEPs, who do not seem to be on-message. In any PMQs, the rank hypocrisy is on all sides. It's just a matter of who points it out most compellingly.
Miliband gave the game away early on with joke about Cameron's fear of losing tonight's vote. "Weak at home, weak abroad — it's like John Major all over again," the Labour leader quipped, rather ineffectively. It was a mistake. Gloating over the prime minister's difficulties corroborated Cameron's 'opportunism' charge and made Miliband look mischievous and scheming.
"Will you be using the veto?" Cameron demanded, but he had forgotten the rules of the House. "I won't be using the veto," Speaker John Bercow observed.
Miliband cut his questions in two so he could focus on Michael Heseltine's review in the latter stages. The tormentor of Margaret Thatcher published an old-school, one nation Conservative regional growth plan this morning, with all sorts of warm words about government action on the economy and some pointed ones about the coalition's lack of economic direction.
The two men traded quotes from the review while berating each other for trading quotes from the review. Soon, Miliband settled on a nice little observation about "recommendation 61", which demands a "definitive and unambiguous" energy policy. This contrasted rather horribly with the mini-civil war the energy minister and the energy secretary have been having this morning over wind farms.
But the opposition leader didn't go for the kill on the wind farm question, despite Cameron's less than convincing obfuscations. Instead, he opted for a broader point on Heseltine, just when he could have had a shot at pinning the PM down.
Cameron nearly saved his performance with the retort: "He's no Heseltine." But it was ruined by his need to tell Bercow he wasn't directing it at him. "Not you, Mr Speaker — him," he pointed out, awkwardly. It's not quite up there with "events, dear boy, events."
All in all, a drab occasion for both men. Cameron looks tired and hesitant and he came a cropper. Miliband looks enthusiastic and decisive and he came a cropper. Better luck next time.
Final score: Cameron: 1 Miliband: 1