A new two-point boundary value problem algorithm based upon the MATLAB bvp4c package of Kierzenka and Shampine is described. The algorithm, implemented in a new package bvp6c, uses the residual control framework of bvp4c (suitably modified for a more accurate finite difference approximation) to maintain a user specified accuracy. The new package is demonstrated to be as robust as the existing software, but more efficient for most problems, requiring fewer internal mesh points and evaluations to achieve the required accuracy