diff --git a/releases/2.14.md b/releases/2.14.md
index b126b81..002e0c7 100644
--- a/releases/2.14.md
+++ b/releases/2.14.md
@@ -277,124 +277,6 @@
 
 ## Bugfix Releases
 
-### 2.14.1 {#2.14.1}
-
-* Add support for Git LFS locking.
-
-  Plugins implementing LFS may now include support for
-  [locking](https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md).
-
-* Upgrade JGit to 4.7.1.201706071930-r.
-
-  This includes a fix to make auto GC run in the background.
-
-  In some cases, the auto GC limit is lower than the true number of
-  unreachable loose objects, so auto GC will run after every (e.g) fetch
-  operation.  This leads to the appearance of poor fetch performance.
-  Since these GCs will never make progress (until either the objects
-  become referenced, or the two week timeout expires), blocking on them
-  simply reduces throughput.
-
-* Allow multiple Servlet filters on Jetty HTTPD.
-
-  It is now possible to specify multiple values for
-  [`httpd.filterClass`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#httpd.filterClass).
-
-* Allow to set Jetty HTTPD socket timeout.
-
-  A new setting [`httpd.idleTimeout`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#httpd.idleTimeout)
-  makes the Jetty HTTPD socket timeout configurable so to tailor the socket
-  and thread consumption to the needs of setups with different latencies and
-  bandwidth.
-
-* Add a `group indexed` extension point.
-
-  Similar to the existing `change indexed` and `account indexed `extension points,
-  this allows plugins to be notified when a group has been indexed.
-
-* Extend upload validation interface to allow listening to negotiation start.
-
-  This can be used to check rate limits for fetch requests. Rate limits
-  should be checked before git transport negotation starts to avoid
-  unnecessary work in case the limit is already reached.
-
-* Fix support for ECDSA and ED25519 SSH keys.
-
-  ECDSA and ED25519 SSH host keys were not generated during site initialization
-  and were not loaded if they existed.
-
-* Fix initialization failure when removing old Bouncy Castle library fails.
-
-  During initialization, old Bouncy Castle libraries are renamed with a `.backup`
-  suffix, but if the destination file already existed the initialization would
-  fail with a fatal error. Now a warning is printed and the initialization
-  continues.
-
-* [Issue 6278](https://bugs.chromium.org/p/gerrit/issues/detail?id=6278):
-Fix internal server error when cloning from slave over HTTP.
-
-* Fix firing change related events for deleted change.
-
-* [Issue 5393](https://bugs.chromium.org/p/gerrit/issues/detail?id=5393):
-Improve the performance of reviewer suggestion.
-
-* [Issue 6173](https://bugs.chromium.org/p/gerrit/issues/detail?id=6173):
-Fix setting
-[`sshd.idleTimeout`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#sshd.idleTimeout)
-for nio2 backend.
-
-  The idle timeout was not properly set for the nio2 backend, so connections
-  would always time out with the default value (10 minutes).
-
-* Improve error message when publishing an already published change edit.
-
-* Fix ref visibility checks in dashboards.
-
-* Replication plugin: Fix replication retries when `maxRetries` is set to 0.
-
-* Fix autocomplete for Firefox on LDAP login screen.
-
-* Add support for mariadb in AccountPatchReviewStore.
-
-* Fix notifications for comments on draft patch sets.
-
-* Fix internal server error when deleting current patch set and previous patch
-set doesn't exist.
-
-* [Issue 6176](https://bugs.chromium.org/p/gerrit/issues/detail?id=6176):
-Fix internal server error when old patch set is not found.
-
-* Always use SSL implicitly for POP3 and IMAP.
-
-  If `receiveemail.encryption` is set to TLS/SSL, we always want to use the
-  implicit mode to execute the TLS/SSL command right after establishing
-  the conection with the mail server. Strict mail servers like Gmail would
-  close the connection prematurely otherwise.
-
-* Allow plugins to non-transitively depend on prolog rules.
-
-* [Issue 6367](https://bugs.chromium.org/p/gerrit/issues/detail?id=6367):
-Allow to set blocking label range rules in permission rule editor.
-
-* PolyGerrit UI
-
-    * [Issue 6096](https://bugs.chromium.org/p/gerrit/issues/detail?id=6096):
-      Add an "up" button to the diff screen.
-
-    * [Issue 6041](https://bugs.chromium.org/p/gerrit/issues/detail?id=6041):
-      Display `/MERGE_LIST` and `/COMMIT_MESSAGE` as `Merge List` and
-      `Commit Message`.
-
-    * [Issue 6080](https://bugs.chromium.org/p/gerrit/issues/detail?id=6080):
-      Allow editing status when full name is not editable.
-
-    * [Issue 6166](https://bugs.chromium.org/p/gerrit/issues/detail?id=6166):
-      Fix loading favicon on a prefixed URL.
-
-    * Make sure 'Merge Conflict' displays on change view.
-
-    * Use a default name for accounts that do not have a display name.
-
 ### 2.14.2 *(In development)* {#2.14.2}
 
 * [Issue 6472](https://bugs.chromium.org/p/gerrit/issues/detail?id=6472):
@@ -513,3 +395,121 @@
 
     * [Issue 6693](https://bugs.chromium.org/p/gerrit/issues/detail?id=6693):
       Fix back button behavior for hash redirects.
+
+### 2.14.1 {#2.14.1}
+
+* Add support for Git LFS locking.
+
+  Plugins implementing LFS may now include support for
+  [locking](https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md).
+
+* Upgrade JGit to 4.7.1.201706071930-r.
+
+  This includes a fix to make auto GC run in the background.
+
+  In some cases, the auto GC limit is lower than the true number of
+  unreachable loose objects, so auto GC will run after every (e.g) fetch
+  operation.  This leads to the appearance of poor fetch performance.
+  Since these GCs will never make progress (until either the objects
+  become referenced, or the two week timeout expires), blocking on them
+  simply reduces throughput.
+
+* Allow multiple Servlet filters on Jetty HTTPD.
+
+  It is now possible to specify multiple values for
+  [`httpd.filterClass`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#httpd.filterClass).
+
+* Allow to set Jetty HTTPD socket timeout.
+
+  A new setting [`httpd.idleTimeout`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#httpd.idleTimeout)
+  makes the Jetty HTTPD socket timeout configurable so to tailor the socket
+  and thread consumption to the needs of setups with different latencies and
+  bandwidth.
+
+* Add a `group indexed` extension point.
+
+  Similar to the existing `change indexed` and `account indexed `extension points,
+  this allows plugins to be notified when a group has been indexed.
+
+* Extend upload validation interface to allow listening to negotiation start.
+
+  This can be used to check rate limits for fetch requests. Rate limits
+  should be checked before git transport negotation starts to avoid
+  unnecessary work in case the limit is already reached.
+
+* Fix support for ECDSA and ED25519 SSH keys.
+
+  ECDSA and ED25519 SSH host keys were not generated during site initialization
+  and were not loaded if they existed.
+
+* Fix initialization failure when removing old Bouncy Castle library fails.
+
+  During initialization, old Bouncy Castle libraries are renamed with a `.backup`
+  suffix, but if the destination file already existed the initialization would
+  fail with a fatal error. Now a warning is printed and the initialization
+  continues.
+
+* [Issue 6278](https://bugs.chromium.org/p/gerrit/issues/detail?id=6278):
+Fix internal server error when cloning from slave over HTTP.
+
+* Fix firing change related events for deleted change.
+
+* [Issue 5393](https://bugs.chromium.org/p/gerrit/issues/detail?id=5393):
+Improve the performance of reviewer suggestion.
+
+* [Issue 6173](https://bugs.chromium.org/p/gerrit/issues/detail?id=6173):
+Fix setting
+[`sshd.idleTimeout`](http://gerrit-documentation.storage.googleapis.com/Documentation/2.14.1/config-gerrit.html#sshd.idleTimeout)
+for nio2 backend.
+
+  The idle timeout was not properly set for the nio2 backend, so connections
+  would always time out with the default value (10 minutes).
+
+* Improve error message when publishing an already published change edit.
+
+* Fix ref visibility checks in dashboards.
+
+* Replication plugin: Fix replication retries when `maxRetries` is set to 0.
+
+* Fix autocomplete for Firefox on LDAP login screen.
+
+* Add support for mariadb in AccountPatchReviewStore.
+
+* Fix notifications for comments on draft patch sets.
+
+* Fix internal server error when deleting current patch set and previous patch
+set doesn't exist.
+
+* [Issue 6176](https://bugs.chromium.org/p/gerrit/issues/detail?id=6176):
+Fix internal server error when old patch set is not found.
+
+* Always use SSL implicitly for POP3 and IMAP.
+
+  If `receiveemail.encryption` is set to TLS/SSL, we always want to use the
+  implicit mode to execute the TLS/SSL command right after establishing
+  the conection with the mail server. Strict mail servers like Gmail would
+  close the connection prematurely otherwise.
+
+* Allow plugins to non-transitively depend on prolog rules.
+
+* [Issue 6367](https://bugs.chromium.org/p/gerrit/issues/detail?id=6367):
+Allow to set blocking label range rules in permission rule editor.
+
+* PolyGerrit UI
+
+    * [Issue 6096](https://bugs.chromium.org/p/gerrit/issues/detail?id=6096):
+      Add an "up" button to the diff screen.
+
+    * [Issue 6041](https://bugs.chromium.org/p/gerrit/issues/detail?id=6041):
+      Display `/MERGE_LIST` and `/COMMIT_MESSAGE` as `Merge List` and
+      `Commit Message`.
+
+    * [Issue 6080](https://bugs.chromium.org/p/gerrit/issues/detail?id=6080):
+      Allow editing status when full name is not editable.
+
+    * [Issue 6166](https://bugs.chromium.org/p/gerrit/issues/detail?id=6166):
+      Fix loading favicon on a prefixed URL.
+
+    * Make sure 'Merge Conflict' displays on change view.
+
+    * Use a default name for accounts that do not have a display name.
