diff --git a/src/main.rs b/src/main.rs
index 8a9d2c57e87835e1622b3f388057e692b8b14634..46df5d6eedcb70b728415ef75f7d240ad27b2d0e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -253,10 +253,15 @@ fn routes() -> Router {
         .ruma_route(client_server::get_protocols_route)
         .ruma_route(client_server::send_message_event_route)
         .ruma_route(client_server::send_state_event_for_key_route)
-        .ruma_route(client_server::send_state_event_for_empty_key_route)
         .ruma_route(client_server::get_state_events_route)
         .ruma_route(client_server::get_state_events_for_key_route)
-        .ruma_route(client_server::get_state_events_for_empty_key_route)
+        // Ruma doesn't have support for multiple paths for a single endpoint yet, and these routes
+        // share one Ruma request / response type pair with {get,send}_state_event_for_key_route
+        .route(
+            "/_matrix/client/r0/rooms/:room_id/state/:event_type",
+            get(client_server::get_state_events_for_empty_key_route)
+                .put(client_server::send_state_event_for_empty_key_route),
+        )
         .ruma_route(client_server::sync_events_route)
         .ruma_route(client_server::get_context_route)
         .ruma_route(client_server::get_message_events_route)