This latest change to $cb() needs a fair bit of testing as it required a partial rewrite. If you spot anything odd, please let me know.