According to Oriol (and me) using a nonlinear solver with jacobians should be more robust and need less iterations than the current method.