diff --git a/CMakeLists.txt b/CMakeLists.txt
index 537a103..e3fcd19 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -74,11 +74,11 @@
 # For versions without ABI changes, bump the smallest number in CERES_VERSION,
 # but leave the CERES_ABI_VERSION unchanged.
 SET(CERES_VERSION_MAJOR 1)
-SET(CERES_VERSION_MINOR 5)
+SET(CERES_VERSION_MINOR 6)
 SET(CERES_VERSION_PATCH 0)
 SET(CERES_VERSION
     ${CERES_VERSION_MAJOR}.${CERES_VERSION_MINOR}.${CERES_VERSION_PATCH})
-SET(CERES_ABI_VERSION 1.5.0)
+SET(CERES_ABI_VERSION 1.6.0)
 
 ENABLE_TESTING()
 
diff --git a/docs/source/version_history.rst b/docs/source/version_history.rst
index 33f89bf..5ec3888 100644
--- a/docs/source/version_history.rst
+++ b/docs/source/version_history.rst
@@ -4,6 +4,60 @@
 Version History
 ===============
 
+1.6.0
+=====
+
+New Features
+------------
+
+#. Major Performance improvements.
+
+   a. Schur type solvers (``SPARSE_SCHUR``, ``DENSE_SCHUR``,
+      ``ITERATIVE_SCHUR``) are significantly faster due to custom BLAS
+      routines and fewer heap allocations.
+
+   b. ``SPARSE_SCHUR`` when used with ``CX_SPARSE`` now uses a block
+      AMD for much improved factorization performance.
+
+   c. The jacobian matrix is pre-ordered so that
+      ``SPARSE_NORMAL_CHOLESKY`` and ``SPARSE_SCHUR`` do not have to
+      make copies inside ``CHOLMOD``.
+
+   d. Faster autodiff by replacing division by multplication by inverse.
+
+   e. When compiled without threads, the schur eliminator does not pay
+      the penalty for locking and unlocking mutexes.
+
+#. Users can now use ``linear_solver_ordering`` to affect the
+   fill-reducing ordering used by ``SUITE_SPARSE`` for
+   ``SPARSE_NORMAL_CHOLESKY``.
+
+#. ``Problem`` can now report the set of parameter blocks it knows about.
+
+#. ``TrustRegionMinimizer`` uses the evaluator to compute the gradient
+   instead of a matrix vector multiply.
+
+#. On ``Mac OS``, whole program optimization is enabled.
+
+#. Users can now use automatic differentiation to define new
+   ``LocalParameterization`` objects. (Sergey Sharybin)
+
+#. Enable larger tuple sizes for Visual Studio 2012. (Petter Strandmark)
+
+
+Bug Fixes
+---------
+
+#. Bugfix in ``NumericDiffCostFunction``. (Nicolas Brodu)
+#. Death to BlockSparseMatrixBase.
+#. Change Minimizer::Options::min_trust_region_radius to double.
+#. Update to compile with stricter gcc checks. (Joydeep Biswas)
+#. Do not modify cached CMAKE_CXX_FLAGS_RELEASE. (Sergey Sharybin)
+#. ``<iterator>`` needed for back_insert_iterator. (Petter Strandmark)
+#. Lint cleanup. (William Rucklidge)
+#. Documentation corrections. (Pablo Speciale)
+
+
 1.5.0
 =====
 
diff --git a/include/ceres/ceres.h b/include/ceres/ceres.h
index ac76e97..b7aeeef 100644
--- a/include/ceres/ceres.h
+++ b/include/ceres/ceres.h
@@ -34,8 +34,8 @@
 #ifndef CERES_PUBLIC_CERES_H_
 #define CERES_PUBLIC_CERES_H_
 
-#define CERES_VERSION 1.5.0
-#define CERES_ABI_VERSION 1.5.0
+#define CERES_VERSION 1.6.0
+#define CERES_ABI_VERSION 1.6.0
 
 #include "ceres/autodiff_cost_function.h"
 #include "ceres/autodiff_local_parameterization.h"
diff --git a/include/ceres/numeric_diff_cost_function.h b/include/ceres/numeric_diff_cost_function.h
index 555bc3d..4c84d4c 100644
--- a/include/ceres/numeric_diff_cost_function.h
+++ b/include/ceres/numeric_diff_cost_function.h
@@ -230,8 +230,8 @@
     if (N5) parameters_reference_copy[5] = parameters_reference_copy[4] + N4;
     if (N6) parameters_reference_copy[6] = parameters_reference_copy[5] + N5;
     if (N7) parameters_reference_copy[7] = parameters_reference_copy[6] + N6;
-    if (N7) parameters_reference_copy[8] = parameters_reference_copy[7] + N7;
-    if (N8) parameters_reference_copy[9] = parameters_reference_copy[8] + N8;
+    if (N8) parameters_reference_copy[8] = parameters_reference_copy[7] + N7;
+    if (N9) parameters_reference_copy[9] = parameters_reference_copy[8] + N8;
 
 #define COPY_PARAMETER_BLOCK(block)                                     \
   if (N ## block) memcpy(parameters_reference_copy[block],              \
diff --git a/include/ceres/solver.h b/include/ceres/solver.h
index 8e3fa58..0603a30 100644
--- a/include/ceres/solver.h
+++ b/include/ceres/solver.h
@@ -351,9 +351,6 @@
     // deallocate the memory when destroyed.
     ParameterBlockOrdering* linear_solver_ordering;
 
-    // Note: This option only applies to the SPARSE_NORMAL_CHOLESKY
-    // solver when used with SUITE_SPARSE.
-
     // Sparse Cholesky factorization algorithms use a fill-reducing
     // ordering to permute the columns of the Jacobian matrix. There
     // are two ways of doing this.
