diff --git a/set_version.sh b/set_version.sh
index e84cc49d2431d60770fcea6cba1ccc624e9503eb..45686247b26cd31e5652ec5e7a5b0849c565bd51 100755
--- a/set_version.sh
+++ b/set_version.sh
@@ -1,3 +1,3 @@
 #!/bin/bash
-export version=0.5.1-alpha.0
+export version=0.5.1-alpha.0-patch.0
 echo "pub const VERSION: &str = \"${version}\";" > src/version.rs
diff --git a/src/database/entities/channel.rs b/src/database/entities/channel.rs
index 97cee87c36371c18718a0b5f0447d03f52214a05..5e134cf9be1d07dab07164c2500dcefdc8b9589c 100644
--- a/src/database/entities/channel.rs
+++ b/src/database/entities/channel.rs
@@ -232,59 +232,63 @@ impl Channel {
         }
 
         // Remove from server object.
-        if let Channel::TextChannel { server, .. } = &self {
-            let server = Ref::from_unchecked(server.clone()).fetch_server().await?;
-            let mut update = doc! {
-                "$pull": {
-                    "channels": id
-                }
-            };
+        match &self {
+            Channel::TextChannel { server, .. }
+            | Channel::VoiceChannel { server, .. } => {
+                let server = Ref::from_unchecked(server.clone()).fetch_server().await?;
+                let mut update = doc! {
+                    "$pull": {
+                        "channels": id
+                    }
+                };
 
-            if let Some(sys) = &server.system_messages {
-                let mut unset = doc! {};
+                if let Some(sys) = &server.system_messages {
+                    let mut unset = doc! {};
 
-                if let Some(cid) = &sys.user_joined {
-                    if id == cid {
-                        unset.insert("system_messages.user_joined", 1);
+                    if let Some(cid) = &sys.user_joined {
+                        if id == cid {
+                            unset.insert("system_messages.user_joined", 1);
+                        }
                     }
-                }
 
-                if let Some(cid) = &sys.user_left {
-                    if id == cid {
-                        unset.insert("system_messages.user_left", 1);
+                    if let Some(cid) = &sys.user_left {
+                        if id == cid {
+                            unset.insert("system_messages.user_left", 1);
+                        }
                     }
-                }
 
-                if let Some(cid) = &sys.user_kicked {
-                    if id == cid {
-                        unset.insert("system_messages.user_kicked", 1);
+                    if let Some(cid) = &sys.user_kicked {
+                        if id == cid {
+                            unset.insert("system_messages.user_kicked", 1);
+                        }
                     }
-                }
 
-                if let Some(cid) = &sys.user_banned {
-                    if id == cid {
-                        unset.insert("system_messages.user_banned", 1);
+                    if let Some(cid) = &sys.user_banned {
+                        if id == cid {
+                            unset.insert("system_messages.user_banned", 1);
+                        }
                     }
-                }
 
-                if unset.len() > 0 {
-                    update.insert("$unset", unset);
+                    if unset.len() > 0 {
+                        update.insert("$unset", unset);
+                    }
                 }
-            }
 
-            get_collection("servers")
-                .update_one(
-                    doc! {
-                        "_id": server.id
-                    },
-                    update,
-                    None,
-                )
-                .await
-                .map_err(|_| Error::DatabaseError {
-                    operation: "update_one",
-                    with: "servers",
-                })?;
+                get_collection("servers")
+                    .update_one(
+                        doc! {
+                            "_id": server.id
+                        },
+                        update,
+                        None,
+                    )
+                    .await
+                    .map_err(|_| Error::DatabaseError {
+                        operation: "update_one",
+                        with: "servers",
+                    })?;
+            },
+            _ => {}
         }
 
         // Finally, delete the channel object.
diff --git a/src/routes/channels/edit_channel.rs b/src/routes/channels/edit_channel.rs
index 544c464a4ec7123ae60bd09b63c3c863fd8e0f6c..74b16ce64edfb0bde59ed059c699d0e6fb7a78f2 100644
--- a/src/routes/channels/edit_channel.rs
+++ b/src/routes/channels/edit_channel.rs
@@ -45,7 +45,9 @@ pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> {
     }
 
     match &target {
-        Channel::Group { id, icon, .. } | Channel::TextChannel { id, icon, .. } => {
+        Channel::Group { id, icon, .. }
+        | Channel::TextChannel { id, icon, .. }
+        | Channel::VoiceChannel { id, icon, .. } => {
             let mut set = doc! {};
             let mut unset = doc! {};
 
diff --git a/src/routes/invites/invite_fetch.rs b/src/routes/invites/invite_fetch.rs
index 1819baf70e44038f44696227d26097ed2b638d2b..e76039d42479a15a3822b9937b5543d4d7daab07 100644
--- a/src/routes/invites/invite_fetch.rs
+++ b/src/routes/invites/invite_fetch.rs
@@ -35,29 +35,24 @@ pub async fn req(target: Ref) -> Result<JsonValue> {
             let channel = Ref::from_unchecked(channel).fetch_channel().await?;
             let creator = Ref::from_unchecked(creator).fetch_user().await?;
 
-            if let Channel::TextChannel {
-                id,
-                server,
-                name,
-                description,
-                ..
-            } = channel
-            {
-                let server = Ref::from_unchecked(server).fetch_server().await?;
-
-                Ok(json!(InviteResponse::Server {
-                    server_id: server.id,
-                    server_name: server.name,
-                    server_icon: server.icon,
-                    server_banner: server.banner,
-                    channel_id: id,
-                    channel_name: name,
-                    channel_description: description,
-                    user_name: creator.username,
-                    user_avatar: creator.avatar
-                }))
-            } else {
-                unreachable!()
+            match channel {
+                Channel::TextChannel { id, server, name, description, .. }
+                | Channel::VoiceChannel { id, server, name, description, .. } => {
+                    let server = Ref::from_unchecked(server).fetch_server().await?;
+    
+                    Ok(json!(InviteResponse::Server {
+                        server_id: server.id,
+                        server_name: server.name,
+                        server_icon: server.icon,
+                        server_banner: server.banner,
+                        channel_id: id,
+                        channel_name: name,
+                        channel_description: description,
+                        user_name: creator.username,
+                        user_avatar: creator.avatar
+                    }))
+                }
+                _ => unreachable!()
             }
         }
         _ => unreachable!(),
diff --git a/src/routes/invites/invite_join.rs b/src/routes/invites/invite_join.rs
index afa6baec59685a96fda83a7b8d2e24f4a89118f1..517b732e2d64cfec6033c4e651d7a1a6b85e7130 100644
--- a/src/routes/invites/invite_join.rs
+++ b/src/routes/invites/invite_join.rs
@@ -10,10 +10,12 @@ pub async fn req(user: User, target: Ref) -> Result<JsonValue> {
     match target {
         Invite::Server { channel, .. } => {
             let channel = Ref::from_unchecked(channel).fetch_channel().await?;
-            let server = if let Channel::TextChannel { server, .. } = &channel {
-                Ref::from_unchecked(server.clone()).fetch_server().await?
-            } else {
-                unreachable!()
+            let server = match &channel {
+                Channel::TextChannel { server, .. }
+                | Channel::VoiceChannel { server, .. } => {
+                    Ref::from_unchecked(server.clone()).fetch_server().await?
+                }
+                _ => unreachable!()
             };
 
             server.join_member(&user.id).await?;
diff --git a/src/version.rs b/src/version.rs
index 0625890f94a042255674370d59c10059fa59e9e2..25c37d40be58cb0f1777a40c92a2c6b3d51dcec8 100644
--- a/src/version.rs
+++ b/src/version.rs
@@ -1 +1 @@
-pub const VERSION: &str = "0.5.1-alpha.0";
+pub const VERSION: &str = "0.5.1-alpha.0-patch.0";