diff --git a/docs/source/modeling.rst b/docs/source/modeling.rst
index 93098f1..95832b1 100644
--- a/docs/source/modeling.rst
+++ b/docs/source/modeling.rst
@@ -350,10 +350,10 @@
         : public SizedCostFunction<M, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9> {
       };
 
-   To get an numerically differentiated :class:`CostFunction`, you
-   must define a class with a ``operator()`` (a functor) that computes
-   the residuals. The functor must write the computed value in the
-   last argument (the only non-``const`` one) and return ``true`` to
+   To get a numerically differentiated :class:`CostFunction`, you must
+   define a class with a ``operator()`` (a functor) that computes the
+   residuals. The functor must write the computed value in the last
+   argument (the only non-``const`` one) and return ``true`` to
    indicate success.  Please see :class:`CostFunction` for details on
    how the return value may be used to impose simple constraints on
    the parameter block. e.g., an object of the form
diff --git a/docs/source/solving.rst b/docs/source/solving.rst
index c992c5b..9b26166 100644
--- a/docs/source/solving.rst
+++ b/docs/source/solving.rst
@@ -1022,7 +1022,7 @@
    1. Compute the Jacobian matrix in some order and then have the
       factorization algorithm permute the columns of the Jacobian.
 
-   2. Compute the Jacobian with it's columns already permuted.
+   2. Compute the Jacobian with its columns already permuted.
 
    The first option incurs a significant memory penalty. The
    factorization algorithm has to make a copy of the permuted Jacobian
@@ -1314,7 +1314,8 @@
 .. class:: IterationSummary
 
    :class:`IterationSummary` describes the state of the optimizer
-   after each iteration of the minimization.
+   after each iteration of the minimization. Note that all times are
+   wall times.
 
    .. code-block:: c++
 
@@ -1524,6 +1525,8 @@
 
 .. class:: Solver::Summary
 
+  Note that all times reported in this struct are wall times.
+
   .. code-block:: c++
 
      struct Summary {
diff --git a/docs/source/tutorial.rst b/docs/source/tutorial.rst
index 3329927..da63e9e 100644
--- a/docs/source/tutorial.rst
+++ b/docs/source/tutorial.rst
@@ -244,7 +244,7 @@
       residuals[0] = 10 - x;
 
       // Compute the Jacobian if asked for.
-      if (jacobians != NULL) {
+      if (jacobians != NULL && jacobians[0] != NULL) {
         jacobians[0][0] = -1;
       }
       return true;
diff --git a/docs/source/version_history.rst b/docs/source/version_history.rst
index a83d098..11e1e46 100644
--- a/docs/source/version_history.rst
+++ b/docs/source/version_history.rst
@@ -31,7 +31,7 @@
 #. Enabling -O4 (link-time optimization) only if compiler/linker support it. (Alex Stewart)
 #. Consistent glog path across files.
 #. ceres-solver.spec: Use cleaner, more conventional Release string (Taylor Braun-Jones)
-#. Fix compile bug on RHEL6 due to missing header (Taylor Braun-Jones 3 weeks ago)
+#. Fix compile bug on RHEL6 due to missing header (Taylor Braun-Jones)
 
 
 1.6.0
diff --git a/include/ceres/iteration_callback.h b/include/ceres/iteration_callback.h
index 0dc4c96..13140c2 100644
--- a/include/ceres/iteration_callback.h
+++ b/include/ceres/iteration_callback.h
@@ -128,6 +128,8 @@
   // Newton step.
   int linear_solver_iterations;
 
+  // All times reported below are wall times.
+
   // Time (in seconds) spent inside the minimizer loop in the current
   // iteration.
   double iteration_time_in_seconds;
diff --git a/include/ceres/jet.h b/include/ceres/jet.h
index 7299a48..4d2a857 100644
--- a/include/ceres/jet.h
+++ b/include/ceres/jet.h
@@ -545,8 +545,8 @@
 Jet<T, N> tanh(const Jet<T, N>& f) {
   Jet<T, N> g;
   g.a = tanh(f.a);
-  double tanh_fa = tanh(f.a);
-  const T tmp = 1 - tanh_fa * tanh_fa;
+  double tanh_a = tanh(f.a);
+  const T tmp = T(1.0) - tanh_a * tanh_a;
   g.v = tmp * f.v;
   return g;
 }
diff --git a/include/ceres/solver.h b/include/ceres/solver.h
index 854df2a..8bf87f9 100644
--- a/include/ceres/solver.h
+++ b/include/ceres/solver.h
@@ -603,6 +603,8 @@
     int num_unsuccessful_steps;
     int num_inner_iteration_steps;
 
+    // All times reported below are wall times.
+
     // When the user calls Solve, before the actual optimization
     // occurs, Ceres performs a number of preprocessing steps. These
     // include error checks, memory allocations, and reorderings. This
diff --git a/internal/ceres/solver.cc b/internal/ceres/solver.cc
index 5acbbfd..9ff2d15 100644
--- a/internal/ceres/solver.cc
+++ b/internal/ceres/solver.cc
@@ -283,7 +283,6 @@
     StringAppendF(&report, "%45s    %21s\n", "Given",  "Used");
     StringAppendF(&report, "Threads             % 25d% 25d\n",
                   num_threads_given, num_threads_used);
-
   }
 
   if (termination_type == DID_NOT_RUN) {
