Steven Johnson wrote:
If you make o local, it'll work fine. As it is, it's global in both cases and b:new replaces the one you're using in a:new.
What he said. Try to use locals wherever possible, not only does it prevent bugs like this, but they're also a lot faster.