diff --git a/gulp/res/js/filters.js b/gulp/res/js/filters.js
index 63e41e04d8e3d6c7b5cededf9cc61a9112b01580..b5a11e656664d60ba2d41e93f986b4c33e551d1b 100644
--- a/gulp/res/js/filters.js
+++ b/gulp/res/js/filters.js
@@ -238,7 +238,7 @@ const moderatePost = (postContainer) => {
 }
 
 const postMenuChange = function(e) {
-	const postContainer = this.parentElement.parentElement.parentElement;
+	const postContainer = this.closest(isCatalog ? '.catalog-tile': '.post-container');
 	const postDataset = postContainer.dataset
 	const filterType = this.value;
 	const hiding = !postContainer.classList.contains('hidden');
diff --git a/views/mixins/catalogtile.pug b/views/mixins/catalogtile.pug
index cfa48e0c1fbc275ce86d236f2e938ea14c7af12a..db56f9d2dc47c8a453b8d4ab6debad39c66ff3c1 100644
--- a/views/mixins/catalogtile.pug
+++ b/views/mixins/catalogtile.pug
@@ -37,11 +37,11 @@ mixin catalogtile(post, index, overboard=false)
 					span(class=`flag flag-${post.country.code.toLowerCase()}` title=post.country.name alt=post.country.name)
 					| 
 			a.no-decoration.post-subject(href=postURL) #{post.subject || 'No subject'}
-
-				select.jsonly.postmenu.right
-					option(value='single') Hide
-					if !overboard && !ban
-						option(value='moderate') Moderate
+			|
+			select.jsonly.postmenu.right
+				option(value='single') Hide
+				if !overboard && !ban
+					option(value='moderate') Moderate
 			br 
 			span(title='Replies') R: #{post.replyposts}
 			|  /