diff --git a/CHANGES.md b/CHANGES.md
index 74b8e1df876753488ff246a29605d88bb96b08de..2ecbd3fd00aef8b37aaccfe24c4880b5d546447e 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,19 @@
+Synapse 1.18.0rc2 (2020-07-28)
+==============================
+
+Bugfixes
+--------
+
+- Fix an `AssertionError` exception introduced in v1.18.0rc1. ([\#7876](https://github.com/matrix-org/synapse/issues/7876))
+- Fix experimental support for moving typing off master when worker is restarted, which is broken in v1.18.0rc1. ([\#7967](https://github.com/matrix-org/synapse/issues/7967))
+
+
+Internal Changes
+----------------
+
+- Further optimise queueing of inbound replication commands. ([\#7876](https://github.com/matrix-org/synapse/issues/7876))
+
+
 Synapse 1.18.0rc1 (2020-07-27)
 ==============================
 
diff --git a/changelog.d/7876.bugfix b/changelog.d/7876.bugfix
deleted file mode 100644
index 4ba2fadd5879f594ac8b8c4c28750e9f7090aeef..0000000000000000000000000000000000000000
--- a/changelog.d/7876.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix an `AssertionError` exception introduced in v1.18.0rc1.
diff --git a/changelog.d/7876.misc b/changelog.d/7876.misc
deleted file mode 100644
index 5c78a158cdee52edbb3977502859886975deb692..0000000000000000000000000000000000000000
--- a/changelog.d/7876.misc
+++ /dev/null
@@ -1 +0,0 @@
-Further optimise queueing of inbound replication commands.
diff --git a/changelog.d/7967.bugfix b/changelog.d/7967.bugfix
deleted file mode 100644
index 105ea1c7e0daa1b6f8aa5a6aa533651876e70123..0000000000000000000000000000000000000000
--- a/changelog.d/7967.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Fix experimental support for moving typing off master when worker is restarted, which is broken in v1.18.0-rc1.
diff --git a/synapse/__init__.py b/synapse/__init__.py
index 900513499dd435ab8c3e83e0c14e7456ed77b5ec..83ce2ae6f49446546a84f11da0064a0f8af504b9 100644
--- a/synapse/__init__.py
+++ b/synapse/__init__.py
@@ -36,7 +36,7 @@ try:
 except ImportError:
     pass
 
-__version__ = "1.18.0rc1"
+__version__ = "1.18.0rc2"
 
 if bool(os.environ.get("SYNAPSE_TEST_PATCH_LOG_CONTEXTS", False)):
     # We import here so that we don't have to install a bunch of deps when