diff --git a/src/Main.cxx b/src/Main.cxx
index 9b92ad8d783c26f4ced67fc5b3b5ee9a03fbcf6c..d3ade091c887c165887f62c316b246f22d0f6056 100644
--- a/src/Main.cxx
+++ b/src/Main.cxx
@@ -500,7 +500,7 @@ try {
 	glue_daemonize_init(&options);
 #endif
 
-	TagLoadConfig();
+	TagLoadConfig(GetGlobalConfig());
 
 	log_init(options.verbose, options.log_stderr);
 
diff --git a/src/tag/Config.cxx b/src/tag/Config.cxx
index a08239efd16adcbd94d47008c63ab32b9bfb1288..07232f3f39148919674870c8d94be99024228833 100644
--- a/src/tag/Config.cxx
+++ b/src/tag/Config.cxx
@@ -21,7 +21,7 @@
 #include "Config.hxx"
 #include "Settings.hxx"
 #include "ParseName.hxx"
-#include "config/Global.hxx"
+#include "config/Data.hxx"
 #include "config/Option.hxx"
 #include "util/Alloc.hxx"
 #include "util/ASCII.hxx"
@@ -31,9 +31,9 @@
 #include <stdlib.h>
 
 void
-TagLoadConfig()
+TagLoadConfig(const ConfigData &config)
 {
-	const char *value = config_get_string(ConfigOption::METADATA_TO_USE);
+	const char *value = config.GetString(ConfigOption::METADATA_TO_USE);
 	if (value == nullptr)
 		return;
 
diff --git a/src/tag/Config.hxx b/src/tag/Config.hxx
index 47d1eb83554949c23b7ac6145e602ecae817ca88..afbf8e817790164b60cad6cfda947ecac6a8859d 100644
--- a/src/tag/Config.hxx
+++ b/src/tag/Config.hxx
@@ -20,7 +20,9 @@
 #ifndef MPD_TAG_CONFIG_HXX
 #define MPD_TAG_CONFIG_HXX
 
+struct ConfigData;
+
 void
-TagLoadConfig();
+TagLoadConfig(const ConfigData &config);
 
 #endif
diff --git a/test/DumpDatabase.cxx b/test/DumpDatabase.cxx
index 8f4f99d10b60cfad8323341e27b1d0121739cae9..9ecfa690cbec34a1617fb0deab168cd53ce2fe79 100644
--- a/test/DumpDatabase.cxx
+++ b/test/DumpDatabase.cxx
@@ -126,7 +126,7 @@ try {
 
 	ReadConfigFile(config_path);
 
-	TagLoadConfig();
+	TagLoadConfig(GetGlobalConfig());
 
 	MyDatabaseListener database_listener;