diff --git a/src/client_server/room.rs b/src/client_server/room.rs
index 28d30e29b82decf975cf9d30f17e0885d04856df..744d9490dbc49639f1b89f632f6608cab1c452f6 100644
--- a/src/client_server/room.rs
+++ b/src/client_server/room.rs
@@ -354,12 +354,8 @@ pub async fn upgrade_room_route(
 ) -> ConduitResult<upgrade_room::Response> {
     let sender_id = body.sender_id.as_ref().expect("user is authenticated");
 
-    // Validate the room version requested
-    let new_version =
-        RoomVersionId::try_from(body.new_version.clone()).expect("invalid room version id");
-
     if !matches!(
-        new_version,
+        body.new_version,
         RoomVersionId::Version5 | RoomVersionId::Version6
     ) {
         return Err(Error::BadRequest(
@@ -414,7 +410,7 @@ pub async fn upgrade_room_route(
     let mut create_event_content =
         ruma::events::room::create::CreateEventContent::new(sender_id.clone());
     create_event_content.federate = federate;
-    create_event_content.room_version = new_version;
+    create_event_content.room_version = body.new_version.clone();
     create_event_content.predecessor = predecessor;
 
     db.rooms.build_and_append_pdu(
diff --git a/src/client_server/sync.rs b/src/client_server/sync.rs
index aec03afae03e39064afedbfea1a4aa166a21f35a..6f41160205b1b5264490f917074cc7dd7779baf5 100644
--- a/src/client_server/sync.rs
+++ b/src/client_server/sync.rs
@@ -477,7 +477,7 @@ pub async fn sync_events_route(
             })
             .and_then(|pdu| {
                 serde_json::from_value::<Raw<ruma::events::room::member::MemberEventContent>>(
-                    pdu.content.clone(),
+                    pdu.content,
                 )
                 .expect("Raw::from_value always works")
                 .deserialize()
diff --git a/src/database/sending.rs b/src/database/sending.rs
index c818cbfc8718826122f412c228f2f1789bcd986f..24a783b670ea14432270a966856569a7499daae1 100644
--- a/src/database/sending.rs
+++ b/src/database/sending.rs
@@ -84,7 +84,7 @@ async fn handle_event(
         (Box<ServerName>, send_transaction_message::v1::Response),
         (Box<ServerName>, Error),
     > {
-        let pdu_json = PduEvent::to_outgoing_federation_event(
+        let pdu_json = PduEvent::convert_to_outgoing_federation_event(
             rooms
                 .get_pdu_json_from_id(&pdu_id)
                 .map_err(|e| (server.clone(), e))?
diff --git a/src/pdu.rs b/src/pdu.rs
index 4b1df4b8387f1b021678d183c3feea13d1b07f0d..7118bfc8e8d6646951f2e4e43694f10cd74a9f02 100644
--- a/src/pdu.rs
+++ b/src/pdu.rs
@@ -199,7 +199,7 @@ pub fn to_member_event(&self) -> Raw<StateEvent<MemberEventContent>> {
         serde_json::from_value(json).expect("Raw::from_value always works")
     }
 
-    pub fn to_outgoing_federation_event(
+    pub fn convert_to_outgoing_federation_event(
         mut pdu_json: serde_json::Value,
     ) -> Raw<ruma::events::pdu::PduStub> {
         if let Some(unsigned) = pdu_json
@@ -239,7 +239,7 @@ fn from(pdu: &state_res::StateEvent) -> Self {
             content: pdu.content().clone(),
             state_key: Some(pdu.state_key()),
             prev_events: pdu.prev_event_ids(),
-            depth: pdu.depth().clone(),
+            depth: *pdu.depth(),
             auth_events: pdu.auth_events(),
             redacts: pdu.redacts().cloned(),
             unsigned: pdu.unsigned().clone().into_iter().collect(),
diff --git a/src/server_server.rs b/src/server_server.rs
index 79976c09dbf9ab0a11f3eae376bf946141d6ea32..462d636fb5d9924ff172138184f515de7f338fe7 100644
--- a/src/server_server.rs
+++ b/src/server_server.rs
@@ -438,7 +438,7 @@ pub fn get_missing_events_route<'a>(
                 )
                 .map_err(|_| Error::bad_database("Invalid prev_events content in pdu in db."))?,
             );
-            events.push(PduEvent::to_outgoing_federation_event(pdu));
+            events.push(PduEvent::convert_to_outgoing_federation_event(pdu));
         }
         i += 1;
     }