Today, on Independence Day, David Cameron found himself addressing US Marines at Camp Leatherneck in Afghanistan. July 4 is a bit of a tricky moment for British leaders, marking as it does a historic military and political defeat for Britain.

For Mr Cameron, whose thoughts on British history have caused him some trouble in the past, it might have been especially difficult.