diff --git a/set_version.sh b/set_version.sh
index 3b4132d1c5bf60f3977f753d0b5b517edf34913f..23f0096a38cfa4c1319fbf7ad2152d427c768a72 100755
--- a/set_version.sh
+++ b/set_version.sh
@@ -1,3 +1,3 @@
 #!/bin/bash
-export version=0.5.1-alpha.19
+export version=0.5.1-alpha.20
 echo "pub const VERSION: &str = \"${version}\";" > src/version.rs
diff --git a/src/database/entities/user.rs b/src/database/entities/user.rs
index 520307c903fe3090e24139b0f4e93484a1c82256..4db564678f4754fe3b5a21c72a2d34b10912addb 100644
--- a/src/database/entities/user.rs
+++ b/src/database/entities/user.rs
@@ -228,6 +228,30 @@ impl User {
         Ok(users)
     }
 
+    /// Utility function to get all of a user's memberships.
+    pub async fn fetch_memberships(id: &str) -> Result<Vec<Member>> {
+        Ok(get_collection("server_members")
+            .find(
+                doc! {
+                    "_id.user": id
+                },
+                None,
+            )
+            .await
+            .map_err(|_| Error::DatabaseError {
+                operation: "find",
+                with: "server_members",
+            })?
+            .filter_map(async move |s| s.ok())
+            .collect::<Vec<Document>>()
+            .await
+            .into_iter()
+            .filter_map(|x| {
+                from_document(x).ok()
+            })
+            .collect::<Vec<Member>>())
+    }
+
     /// Utility function to get all the server IDs the user is in.
     pub async fn fetch_server_ids(id: &str) -> Result<Vec<String>> {
         Ok(get_collection("server_members")
diff --git a/src/notifications/events.rs b/src/notifications/events.rs
index 6d3a407b6cabb1c2fa1eaacf6c3b20ce5d64b81b..f93925c62929c9525ebbbffd42c8dff54ff41486 100644
--- a/src/notifications/events.rs
+++ b/src/notifications/events.rs
@@ -66,6 +66,7 @@ pub enum ClientboundNotification {
         users: Vec<User>,
         servers: Vec<Server>,
         channels: Vec<Channel>,
+        members: Vec<Member>
     },
 
     Message(Message),
diff --git a/src/notifications/payload.rs b/src/notifications/payload.rs
index d79a16cf571351270924079561156de53e44657f..f79d3fdddf78237024a95001d9d4b1b4cb57a31c 100644
--- a/src/notifications/payload.rs
+++ b/src/notifications/payload.rs
@@ -19,7 +19,11 @@ pub async fn generate_ready(mut user: User) -> Result<ClientboundNotification> {
         );
     }
 
-    let server_ids = User::fetch_server_ids(&user.id).await?;
+    let members = User::fetch_memberships(&user.id).await?;
+    let server_ids: Vec<String> = members.iter()
+        .map(|x| x.id.server.clone())
+        .collect();
+    
     let mut cursor = get_collection("servers")
         .find(
             doc! {
@@ -114,5 +118,6 @@ pub async fn generate_ready(mut user: User) -> Result<ClientboundNotification> {
         users,
         servers,
         channels,
+        members
     })
 }
diff --git a/src/routes/channels/message_edit.rs b/src/routes/channels/message_edit.rs
index a356a682fd9b746e4af43850b6ad89eb5f7bd12c..cf8f7f0572f3823a83dfe8a90c18d82a32f3ff90 100644
--- a/src/routes/channels/message_edit.rs
+++ b/src/routes/channels/message_edit.rs
@@ -29,7 +29,7 @@ pub async fn req(user: User, target: Ref, msg: Ref, edit: Json<Data>) -> Result<
         Err(Error::MissingPermission)?
     }
 
-    let message = msg.fetch_message(&channel).await?;
+    let mut message = msg.fetch_message(&channel).await?;
     if message.author != user.id {
         Err(Error::CannotEditMessage)?
     }
@@ -40,6 +40,7 @@ pub async fn req(user: User, target: Ref, msg: Ref, edit: Json<Data>) -> Result<
         "edited": Bson::DateTime(edited)
     };
 
+    message.content = Content::Text(edit.content.clone());
     let mut update = json!({ "content": edit.content, "edited": DateTime(edited) });
 
     if let Some(embeds) = &message.embeds {
diff --git a/src/version.rs b/src/version.rs
index 24a1ed1c44bf04b8f41a86525d10e0669c6cc646..a16194be9e54694aaf70c09f98ea19bb41a779ff 100644
--- a/src/version.rs
+++ b/src/version.rs
@@ -1 +1 @@
-pub const VERSION: &str = "0.5.1-alpha.19";
+pub const VERSION: &str = "0.5.1-alpha.20";