diff --git a/loader/src/ui/mods/sources/InstalledModListSource.cpp b/loader/src/ui/mods/sources/InstalledModListSource.cpp
index bf3d9f24..f1f7e4dc 100644
--- a/loader/src/ui/mods/sources/InstalledModListSource.cpp
+++ b/loader/src/ui/mods/sources/InstalledModListSource.cpp
@@ -18,9 +18,12 @@ bool InstalledModsQuery::preCheck(ModSource const& src) const {
     return true;
 }
 bool InstalledModsQuery::queryCheck(ModSource const& src, double& weighted) const {
-    auto addToList = modFuzzyMatch(src.asMod()->getMetadata(), *query, weighted);
+    bool addToList = true;
+    if (query) {
+        addToList = modFuzzyMatch(src.asMod()->getMetadata(), *query, weighted);
+    }
     // Loader gets boost to ensure it's normally always top of the list
-    if (addToList && src.asMod()->getID() == "geode.loader") {
+    if (addToList && src.asMod()->isInternal()) {
         weighted += 5;
     }
     // todo: favorites
diff --git a/loader/src/ui/mods/sources/ModListSource.hpp b/loader/src/ui/mods/sources/ModListSource.hpp
index 9d25a220..75e2a476 100644
--- a/loader/src/ui/mods/sources/ModListSource.hpp
+++ b/loader/src/ui/mods/sources/ModListSource.hpp
@@ -223,7 +223,7 @@ void filterModsWithLocalQuery(ModListSource::ProvidedMods& mods, Query const& qu
             }
         }
         // Don't bother with unnecessary fuzzy match calculations if this mod isn't going to be added anyway
-        if (addToList && query.query) {
+        if (addToList) {
             addToList = query.queryCheck(src, weighted);
         }
         if (addToList) {
diff --git a/loader/src/ui/mods/sources/SuggestedModListSource.cpp b/loader/src/ui/mods/sources/SuggestedModListSource.cpp
index 49f3bca0..56c35af4 100644
--- a/loader/src/ui/mods/sources/SuggestedModListSource.cpp
+++ b/loader/src/ui/mods/sources/SuggestedModListSource.cpp
@@ -5,10 +5,13 @@ bool SuggestedModsQuery::preCheck(ModSource const& src) const {
     return true;
 }
 bool SuggestedModsQuery::queryCheck(ModSource const& src, double& weighted) const {
-    if (!modFuzzyMatch(src.asSuggestion()->suggestion, *query, weighted)) {
-        return false;
+    if (query) {
+        if (!modFuzzyMatch(src.asSuggestion()->suggestion, *query, weighted)) {
+            return false;
+        }
+        return modFuzzyMatch(src.asSuggestion()->forMod->getMetadata(), *query, weighted);
     }
-    return modFuzzyMatch(src.asSuggestion()->forMod->getMetadata(), *query, weighted);
+    return true;
 }
 
 void SuggestedModListSource::resetQuery() {