diff --git a/changelog.d/12058.feature b/changelog.d/12058.feature
new file mode 100644
index 0000000000000000000000000000000000000000..7b716922299a4fa21b9a7bbaffccc9df8f1180be
--- /dev/null
+++ b/changelog.d/12058.feature
@@ -0,0 +1 @@
+Use room version 9 as the default room version (per [MSC3589](https://github.com/matrix-org/matrix-doc/pull/3589)).
diff --git a/docs/sample_config.yaml b/docs/sample_config.yaml
index d2bb3d42080ab7dfef4058896a90b4cbf3c20cbc..6f3623c88ab9a9b44107d473b20d37b6d7de1d98 100644
--- a/docs/sample_config.yaml
+++ b/docs/sample_config.yaml
@@ -163,7 +163,7 @@ presence:
 # For example, for room version 1, default_room_version should be set
 # to "1".
 #
-#default_room_version: "6"
+#default_room_version: "9"
 
 # The GC threshold parameters to pass to `gc.set_threshold`, if defined
 #
diff --git a/synapse/config/server.py b/synapse/config/server.py
index 7bc9624546845f8b31b25fe0ff435a00a5fa83ae..49cd0a4f192dd1a6c859e4e94acbb2ee0f5d0ede 100644
--- a/synapse/config/server.py
+++ b/synapse/config/server.py
@@ -146,7 +146,7 @@ DEFAULT_IP_RANGE_BLACKLIST = [
     "fec0::/10",
 ]
 
-DEFAULT_ROOM_VERSION = "6"
+DEFAULT_ROOM_VERSION = "9"
 
 ROOM_COMPLEXITY_TOO_GREAT = (
     "Your homeserver is unable to join rooms this large or complex. "