diff --git a/docs/source/solving.rst b/docs/source/solving.rst
index 5f3711a..790d5f3 100644
--- a/docs/source/solving.rst
+++ b/docs/source/solving.rst
@@ -1304,7 +1304,7 @@
 
 .. member:: int Solver::Options::min_linear_solver_iterations
 
-   Default: ``1``
+   Default: ``0``
 
    Minimum number of iterations used by the linear solver. This only
    makes sense when the linear solver is an iterative solver, e.g.,
diff --git a/include/ceres/solver.h b/include/ceres/solver.h
index ef391a7..0af34ca 100644
--- a/include/ceres/solver.h
+++ b/include/ceres/solver.h
@@ -120,7 +120,7 @@
       num_linear_solver_threads = 1;
       use_postordering = false;
       dynamic_sparsity = false;
-      min_linear_solver_iterations = 1;
+      min_linear_solver_iterations = 0;
       max_linear_solver_iterations = 500;
       eta = 1e-1;
       jacobi_scaling = true;
diff --git a/internal/ceres/conjugate_gradients_solver.cc b/internal/ceres/conjugate_gradients_solver.cc
index 524cb8a..5e71501 100644
--- a/internal/ceres/conjugate_gradients_solver.cc
+++ b/internal/ceres/conjugate_gradients_solver.cc
@@ -101,7 +101,7 @@
   A->RightMultiply(x, tmp.data());
   r = bref - tmp;
   double norm_r = r.norm();
-  if (norm_r <= tol_r) {
+  if (options_.min_num_iteratios == 0 && norm_r <= tol_r) {
     summary.termination_type = LINEAR_SOLVER_SUCCESS;
     summary.message =
         StringPrintf("Convergence. |r| = %e <= %e.", norm_r, tol_r);
@@ -114,7 +114,8 @@
   double Q0 = -1.0 * xref.dot(bref + r);
 
   for (summary.num_iterations = 1;
-       summary.num_iterations < options_.max_num_iterations;
+       summary.num_iterations > options_.min_num_iterations &&
+       summary.num_iterations < options_.max_num_iterations
        ++summary.num_iterations) {
     // Apply preconditioner
     if (per_solve_options.preconditioner != NULL) {
diff --git a/internal/ceres/graph_test.cc b/internal/ceres/graph_test.cc
index a1521d8..033d1d9 100644
--- a/internal/ceres/graph_test.cc
+++ b/internal/ceres/graph_test.cc
@@ -58,14 +58,14 @@
   Graph<int> graph;
   graph.AddVertex(0);
   graph.AddVertex(1);
-  graph.AddEdge(0, 1)
+  graph.AddEdge(0, 1);
 
   const HashSet<int>& vertices = graph.vertices();
 
   EXPECT_EQ(vertices.size(), 2);
 
   // Try adding the vertex again with a new weight.
-  graph.AddVertex(0, 3.0);
+  graph.AddVertex(0);
   EXPECT_EQ(vertices.size(), 2);
 
   // Rest of the graph remains the same.
