diff --git a/crates/app/src/routes/pages/misc.rs b/crates/app/src/routes/pages/misc.rs
index b43b9ad..122d82b 100644
--- a/crates/app/src/routes/pages/misc.rs
+++ b/crates/app/src/routes/pages/misc.rs
@@ -71,16 +71,12 @@ pub async fn index_request(
     {
         Ok(l) => match data
             .0
-            .fill_posts_with_community(
-                data.0
-                    .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
-                user.id,
-                &ignore_users,
-                &Some(user.clone()),
-            )
+            .fill_posts_with_community(l, user.id, &ignore_users, &Some(user.clone()))
             .await
         {
-            Ok(l) => l,
+            Ok(l) => data
+                .0
+                .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
             Err(e) => return Html(render_error(e, &jar, &data, &Some(user)).await),
         },
         Err(e) => return Html(render_error(e, &jar, &data, &Some(user)).await),
@@ -109,21 +105,21 @@ pub async fn popular_request(
         Ok(l) => match data
             .0
             .fill_posts_with_community(
-                data.0.posts_muted_phrase_filter(
-                    &l,
-                    if let Some(ref ua) = user {
-                        Some(&ua.settings.muted)
-                    } else {
-                        None
-                    },
-                ),
+                l,
                 if let Some(ref ua) = user { ua.id } else { 0 },
                 &ignore_users,
                 &user,
             )
             .await
         {
-            Ok(l) => l,
+            Ok(l) => data.0.posts_muted_phrase_filter(
+                &l,
+                if let Some(ref ua) = user {
+                    Some(&ua.settings.muted)
+                } else {
+                    None
+                },
+            ),
             Err(e) => return Html(render_error(e, &jar, &data, &user).await),
         },
         Err(e) => return Html(render_error(e, &jar, &data, &user).await),
@@ -162,16 +158,12 @@ pub async fn following_request(
     {
         Ok(l) => match data
             .0
-            .fill_posts_with_community(
-                data.0
-                    .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
-                user.id,
-                &ignore_users,
-                &Some(user.clone()),
-            )
+            .fill_posts_with_community(l, user.id, &ignore_users, &Some(user.clone()))
             .await
         {
-            Ok(l) => l,
+            Ok(l) => data
+                .0
+                .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
             Err(e) => return Err(Html(render_error(e, &jar, &data, &Some(user)).await)),
         },
         Err(e) => return Err(Html(render_error(e, &jar, &data, &Some(user)).await)),
@@ -202,21 +194,21 @@ pub async fn all_request(
         Ok(l) => match data
             .0
             .fill_posts_with_community(
-                data.0.posts_muted_phrase_filter(
-                    &l,
-                    if let Some(ref ua) = user {
-                        Some(&ua.settings.muted)
-                    } else {
-                        None
-                    },
-                ),
+                l,
                 if let Some(ref ua) = user { ua.id } else { 0 },
                 &ignore_users,
                 &user,
             )
             .await
         {
-            Ok(l) => l,
+            Ok(l) => data.0.posts_muted_phrase_filter(
+                &l,
+                if let Some(ref ua) = user {
+                    Some(&ua.settings.muted)
+                } else {
+                    None
+                },
+            ),
             Err(e) => return Html(render_error(e, &jar, &data, &user).await),
         },
         Err(e) => return Html(render_error(e, &jar, &data, &user).await),
@@ -606,16 +598,12 @@ pub async fn search_request(
             {
                 Ok(l) => match data
                     .0
-                    .fill_posts_with_community(
-                        data.0
-                            .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
-                        user.id,
-                        &ignore_users,
-                        &Some(user.clone()),
-                    )
+                    .fill_posts_with_community(l, user.id, &ignore_users, &Some(user.clone()))
                     .await
                 {
-                    Ok(l) => l,
+                    Ok(l) => data
+                        .0
+                        .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
                     Err(_) => Vec::new(),
                 },
                 Err(e) => return Err(Html(render_error(e, &jar, &data, &Some(user)).await)),
@@ -624,16 +612,12 @@ pub async fn search_request(
             match data.0.get_posts_searched(12, req.page, &req.query).await {
                 Ok(l) => match data
                     .0
-                    .fill_posts_with_community(
-                        data.0
-                            .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
-                        user.id,
-                        &ignore_users,
-                        &Some(user.clone()),
-                    )
+                    .fill_posts_with_community(l, user.id, &ignore_users, &Some(user.clone()))
                     .await
                 {
-                    Ok(l) => l,
+                    Ok(l) => data
+                        .0
+                        .posts_muted_phrase_filter(&l, Some(&user.settings.muted)),
                     Err(_) => Vec::new(),
                 },
                 Err(e) => return Err(Html(render_error(e, &jar, &data, &Some(user)).await)),
diff --git a/crates/app/src/routes/pages/profile.rs b/crates/app/src/routes/pages/profile.rs
index 86b8401..ebb9857 100644
--- a/crates/app/src/routes/pages/profile.rs
+++ b/crates/app/src/routes/pages/profile.rs
@@ -245,21 +245,21 @@ pub async fn posts_request(
             Ok(p) => match data
                 .0
                 .fill_posts_with_community(
-                    data.0.posts_muted_phrase_filter(
-                        &p,
-                        if let Some(ref ua) = user {
-                            Some(&ua.settings.muted)
-                        } else {
-                            None
-                        },
-                    ),
+                    p,
                     if let Some(ref ua) = user { ua.id } else { 0 },
                     &ignore_users,
                     &user,
                 )
                 .await
             {
-                Ok(p) => p,
+                Ok(p) => data.0.posts_muted_phrase_filter(
+                    &p,
+                    if let Some(ref ua) = user {
+                        Some(&ua.settings.muted)
+                    } else {
+                        None
+                    },
+                ),
                 Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
             },
             Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
@@ -273,21 +273,21 @@ pub async fn posts_request(
             Ok(p) => match data
                 .0
                 .fill_posts_with_community(
-                    data.0.posts_muted_phrase_filter(
-                        &p,
-                        if let Some(ref ua) = user {
-                            Some(&ua.settings.muted)
-                        } else {
-                            None
-                        },
-                    ),
+                    p,
                     if let Some(ref ua) = user { ua.id } else { 0 },
                     &ignore_users,
                     &user,
                 )
                 .await
             {
-                Ok(p) => p,
+                Ok(p) => data.0.posts_muted_phrase_filter(
+                    &p,
+                    if let Some(ref ua) = user {
+                        Some(&ua.settings.muted)
+                    } else {
+                        None
+                    },
+                ),
                 Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
             },
             Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
@@ -299,21 +299,21 @@ pub async fn posts_request(
             Ok(p) => match data
                 .0
                 .fill_posts_with_community(
-                    data.0.posts_muted_phrase_filter(
-                        &p,
-                        if let Some(ref ua) = user {
-                            Some(&ua.settings.muted)
-                        } else {
-                            None
-                        },
-                    ),
+                    p,
                     if let Some(ref ua) = user { ua.id } else { 0 },
                     &ignore_users,
                     &user,
                 )
                 .await
             {
-                Ok(p) => Some(p),
+                Ok(p) => Some(data.0.posts_muted_phrase_filter(
+                    &p,
+                    if let Some(ref ua) = user {
+                        Some(&ua.settings.muted)
+                    } else {
+                        None
+                    },
+                )),
                 Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
             },
             Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
@@ -415,21 +415,21 @@ pub async fn replies_request(
         Ok(p) => match data
             .0
             .fill_posts_with_community(
-                data.0.posts_muted_phrase_filter(
-                    &p,
-                    if let Some(ref ua) = user {
-                        Some(&ua.settings.muted)
-                    } else {
-                        None
-                    },
-                ),
+                p,
                 if let Some(ref ua) = user { ua.id } else { 0 },
                 &ignore_users,
                 &user,
             )
             .await
         {
-            Ok(p) => p,
+            Ok(p) => data.0.posts_muted_phrase_filter(
+                &p,
+                if let Some(ref ua) = user {
+                    Some(&ua.settings.muted)
+                } else {
+                    None
+                },
+            ),
             Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
         },
         Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
@@ -528,21 +528,21 @@ pub async fn media_request(
         Ok(p) => match data
             .0
             .fill_posts_with_community(
-                data.0.posts_muted_phrase_filter(
-                    &p,
-                    if let Some(ref ua) = user {
-                        Some(&ua.settings.muted)
-                    } else {
-                        None
-                    },
-                ),
+                p,
                 if let Some(ref ua) = user { ua.id } else { 0 },
                 &ignore_users,
                 &user,
             )
             .await
         {
-            Ok(p) => p,
+            Ok(p) => data.0.posts_muted_phrase_filter(
+                &p,
+                if let Some(ref ua) = user {
+                    Some(&ua.settings.muted)
+                } else {
+                    None
+                },
+            ),
             Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
         },
         Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
diff --git a/crates/core/src/database/posts.rs b/crates/core/src/database/posts.rs
index 082bddc..0f4d73c 100644
--- a/crates/core/src/database/posts.rs
+++ b/crates/core/src/database/posts.rs
@@ -470,15 +470,17 @@ impl DataManager {
     /// Update posts which contain a muted phrase.
     pub fn posts_muted_phrase_filter(
         &self,
-        posts: &Vec<Post>,
+        posts: &Vec<FullPost>,
         muted: Option<&Vec<String>>,
-    ) -> Vec<Post> {
+    ) -> Vec<FullPost> {
+        // this shit is actually ass bro it has to clone
+        // very useless
         let muted = match muted {
             Some(m) => m,
             None => return posts.to_owned(),
         };
 
-        let mut out: Vec<Post> = Vec::new();
+        let mut out: Vec<FullPost> = Vec::new();
 
         for mut post in posts.clone() {
             for phrase in muted {
@@ -486,10 +488,27 @@ impl DataManager {
                     continue;
                 }
 
-                if post.content.to_lowercase().contains(&phrase.to_lowercase()) {
-                    post.context.content_warning = "Contains muted phrase".to_string();
+                if post
+                    .0
+                    .content
+                    .to_lowercase()
+                    .contains(&phrase.to_lowercase())
+                {
+                    post.0.context.content_warning = "Contains muted phrase".to_string();
                     break;
                 }
+
+                if let Some(ref mut reposting) = post.3 {
+                    if reposting
+                        .1
+                        .content
+                        .to_lowercase()
+                        .contains(&phrase.to_lowercase())
+                    {
+                        reposting.1.context.content_warning = "Contains muted phrase".to_string();
+                        break;
+                    }
+                }
             }
 
             out.push(post);