Much is at stake if the deal falls apart.
Afghanistan could lose up to $15 billion a year in aid, effectively collapsing its fragile economy and making it unable to pay its 350,000-strong army and police.
After helping forge the deal—known as the Bilateral Security Agreement—President Hamid Karzai balked at signing it.
Although a national assembly of 2,500 delegates known as the Loya Jirga endorsed the deal last month and backed a U.S. request that it be signed by the end of the year, Karzai has said he will be deferring that to his successor and has added new conditions, such as restarting peace talks with the Taliban.
Cameron said it would be better if the deal is signed “sooner rather than later” because NATO countries have to plan.