diff --git a/src/SongFilter.cxx b/src/SongFilter.cxx
index 637150c37..77fea606e 100644
--- a/src/SongFilter.cxx
+++ b/src/SongFilter.cxx
@@ -26,7 +26,9 @@
 #include "util/ASCII.hxx"
 #include "util/UriUtil.hxx"
 
+#ifdef HAVE_GLIB
 #include <glib.h>
+#endif
 
 #include <assert.h>
 #include <string.h>
@@ -56,10 +58,15 @@ gcc_pure
 static std::string
 CaseFold(const char *p)
 {
+#ifdef HAVE_GLIB
 	char *q = g_utf8_casefold(p, -1);
 	std::string result(q);
 	g_free(q);
 	return result;
+#else
+	// TODO: implement without GLib
+	return p;
+#endif
 }
 
 gcc_pure
@@ -83,9 +90,16 @@ SongFilter::Item::StringMatch(const char *s) const
 	assert(s != nullptr);
 
 	if (fold_case) {
+#ifdef HAVE_GLIB
 		char *p = g_utf8_casefold(s, -1);
+#else
+		// TODO: implement without GLib
+		const char *p = s;
+#endif
 		const bool result = strstr(p, value.c_str()) != NULL;
+#ifdef HAVE_GLIB
 		g_free(p);
+#endif
 		return result;
 	} else {
 		return s == value;