Improved the robustness of the CG breakout condition.  Also, when the reliable update occurs, the gradient vector is reprojected to ensure orthogonality.