diff --git a/src/db/update/ExcludeList.cxx b/src/db/update/ExcludeList.cxx
index 7b691b36b..0a5fbac9f 100644
--- a/src/db/update/ExcludeList.cxx
+++ b/src/db/update/ExcludeList.cxx
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (C) 2003-2014 The Music Player Daemon Project
  * http://www.musicpd.org
@@ -27,6 +26,7 @@
 #include "ExcludeList.hxx"
 #include "fs/Path.hxx"
 #include "fs/FileSystem.hxx"
+#include "util/StringUtil.hxx"
 #include "util/Domain.hxx"
 #include "Log.hxx"
 
@@ -58,7 +58,7 @@ ExcludeList::LoadFile(Path path_fs)
 		if (p != nullptr)
 			*p = 0;
 
-		p = g_strstrip(line);
+		p = Strip(line);
 		if (*p != 0)
 			patterns.emplace_front(p);
 	}
diff --git a/src/tag/TagConfig.cxx b/src/tag/TagConfig.cxx
index 3e941c8d9..00f20d1c0 100644
--- a/src/tag/TagConfig.cxx
+++ b/src/tag/TagConfig.cxx
@@ -26,8 +26,7 @@
 #include "system/FatalError.hxx"
 #include "util/Alloc.hxx"
 #include "util/ASCII.hxx"
-
-#include <glib.h>
+#include "util/StringUtil.hxx"
 
 #include <algorithm>
 
@@ -54,7 +53,7 @@ TagLoadConfig()
 				quit = true;
 			*s = '\0';
 
-			c = g_strstrip(c);
+			c = Strip(c);
 			if (*c == 0)
 				continue;
 
diff --git a/src/tag/TagId3.cxx b/src/tag/TagId3.cxx
index 4ecd4baa6..d2d84a1bf 100644
--- a/src/tag/TagId3.cxx
+++ b/src/tag/TagId3.cxx
@@ -22,6 +22,7 @@
 #include "TagHandler.hxx"
 #include "TagTable.hxx"
 #include "TagBuilder.hxx"
+#include "util/StringUtil.hxx"
 #include "util/Error.hxx"
 #include "util/Domain.hxx"
 #include "Log.hxx"
@@ -116,7 +117,7 @@ import_id3_string(bool is_id3v1, const id3_ucs4_t *ucs4)
 	}
 
 	id3_utf8_t *utf8_stripped = (id3_utf8_t *)
-		g_strdup(g_strstrip((gchar *)utf8));
+		g_strdup(Strip((char *)utf8));
 	free(utf8);
 
 	return utf8_stripped;
diff --git a/src/util/StringUtil.cxx b/src/util/StringUtil.cxx
index 57fc5188b..dfe436fd8 100644
--- a/src/util/StringUtil.cxx
+++ b/src/util/StringUtil.cxx
@@ -33,6 +33,20 @@ strchug_fast(const char *p)
 	return p;
 }
 
+char *
+Strip(char *p)
+{
+	p = strchug_fast(p);
+
+	size_t length = strlen(p);
+	while (length > 0 && IsWhitespaceNotNull(p[length - 1]))
+		--length;
+
+	p[length] = 0;
+
+	return p;
+}
+
 bool
 StringStartsWith(const char *haystack, const char *needle)
 {
diff --git a/src/util/StringUtil.hxx b/src/util/StringUtil.hxx
index 933d82c16..a48e2abc9 100644
--- a/src/util/StringUtil.hxx
+++ b/src/util/StringUtil.hxx
@@ -40,6 +40,13 @@ strchug_fast(char *p)
 	return const_cast<char *>(strchug_fast((const char *)p));
 }
 
+/**
+ * Skip whitespace at the beginning and terminate the string after the
+ * last non-whitespace character.
+ */
+char *
+Strip(char *p);
+
 gcc_pure
 bool
 StringStartsWith(const char *haystack, const char *needle);