MPs will get a vote on whether 16 and 17-year-olds can take part in the referendum on Britain's membership of the EU, David Cameron has said.

The SNP and Labour have been calling for the voting age to be lowered as it was in last year's Scottish referendum.

Mr Cameron said MPs should decide on votes at 16 during scrutiny of the European Union Referendum Bill, which has begun its passage into law.

But he told MPs at Prime Minister's Questions the Tories were against it.

Responding to Labour's acting leader Harriet Harman, Mr Cameron said: "I believe we should stick with the current franchise of 18, but I think the House of Commons should vote".

BBC assistant political editor Norman Smith said the vote could be close, with Labour and the SNP lining up alongside any Conservative rebels on the issue.

Mr Cameron also defended his plans to change the rules so the usual pre-election 'purdah' period will not apply ahead of the referendum.

Purdah brings restrictions on government spending and announcements, and critics say it is needed to prevent an unfair advantage for the government side at the referendum.

Mr Cameron said there was a "very real danger" ministers would be barrred from speaking about matters like the EU budget and European court judgements if it applies.

Once his negotiations with EU leaders are complete, the government should have a "clear view" and not be neutral on whether to remain in the union.

The bill paving the way for the in-out referendum on the UK's membership of the EU was passed by 544 to 53 votes on Tuesday.