diff --git a/module/VuFind/config/module.config.php b/module/VuFind/config/module.config.php
index ad8597c2ce387f711189fbcce4c422a97a677b9c..7b20143325d6be18c3404e0fb26ee377a8136bb6 100644
--- a/module/VuFind/config/module.config.php
+++ b/module/VuFind/config/module.config.php
@@ -119,10 +119,12 @@ $config = array(
     'service_manager' => array(
         'factories' => array(
             'VuFind\AuthManager' => function ($sm) {
-                return new \VuFind\Auth\Manager(\VuFind\Config\Reader::getConfig());
+                return new \VuFind\Auth\Manager(
+                    $sm->get('VuFind\Config')->get('config')
+                );
             },
             'VuFind\Cart' => function ($sm) {
-                $config = \VuFind\Config\Reader::getConfig();
+                $config = $sm->get('VuFind\Config')->get('config');
                 $active = isset($config->Site->showBookBag)
                     ? (bool)$config->Site->showBookBag : false;
                 $size = isset($config->Site->bookBagMaxSize)
@@ -133,7 +135,7 @@ $config = array(
             },
             'VuFind\DateConverter' => function ($sm) {
                 return new \VuFind\Date\Converter(
-                    \VuFind\Config\Reader::getConfig()
+                    $sm->get('VuFind\Config')->get('config')
                 );
             },
             'VuFind\DbAdapter' => function ($sm) {
@@ -141,12 +143,12 @@ $config = array(
             },
             'VuFind\Export' => function ($sm) {
                 return new \VuFind\Export(
-                    \VuFind\Config\Reader::getConfig(),
-                    \VuFind\Config\Reader::getConfig('export')
+                    $sm->get('VuFind\Config')->get('config'),
+                    $sm->get('VuFind\Config')->get('export')
                 );
             },
             'VuFind\Http' => function ($sm) {
-                $config = \VuFind\Config\Reader::getConfig();
+                $config = $sm->get('VuFind\Config')->get('config');
                 $options = array();
                 if (isset($config->Proxy->host)) {
                     $options['proxy_host'] = $config->Proxy->host;
@@ -159,7 +161,7 @@ $config = array(
             'VuFind\ILSConnection' => function ($sm) {
                 $catalog = new \VuFind\ILS\Connection();
                 return $catalog
-                    ->setConfig(\VuFind\Config\Reader::getConfig()->Catalog)
+                    ->setConfig($sm->get('VuFind\Config')->get('config')->Catalog)
                     ->initWithDriverManager(
                         $sm->get('VuFind\ILSDriverPluginManager')
                     );
@@ -167,7 +169,7 @@ $config = array(
             'VuFind\Logger' => function ($sm) {
                 $logger = new \VuFind\Log\Logger();
                 $logger->setServiceLocator($sm);
-                $logger->setConfig(\VuFind\Config\Reader::getConfig());
+                $logger->setConfig($sm->get('VuFind\Config')->get('config'));
                 return $logger;
             },
             'VuFind\RecordRouter' => function ($sm) {
@@ -175,7 +177,7 @@ $config = array(
             },
             'VuFind\RecordStats' => function ($sm) {
                 return new \VuFind\Statistics\Record(
-                    \VuFind\Config\Reader::getConfig()
+                    $sm->get('VuFind\Config')->get('config')
                 );
             },
             'VuFind\SearchSpecsReader' => function ($sm) {
@@ -185,7 +187,7 @@ $config = array(
             },
             'VuFind\SearchStats' => function ($sm) {
                 return new \VuFind\Statistics\Search(
-                    \VuFind\Config\Reader::getConfig()
+                    $sm->get('VuFind\Config')->get('config')
                 );
             },
             'VuFind\SMS' => 'VuFind\SMS\Factory',
@@ -454,55 +456,61 @@ $config = array(
             'recorddriver' => array(
                 'abstract_factories' => array('VuFind\RecordDriver\PluginFactory'),
                 'factories' => array(
-                    'missing' => function () {
+                    'missing' => function ($sm) {
                         return new \VuFind\RecordDriver\Missing(
-                            \VuFind\Config\Reader::getConfig()
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config')
                         );
                     },
-                    'solrauth' => function () {
+                    'solrauth' => function ($sm) {
                         return new \VuFind\RecordDriver\SolrAuth(
-                            \VuFind\Config\Reader::getConfig(), null,
-                            \VuFind\Config\Reader::getConfig('searches')
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+                            null,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('searches')
                         );
                     },
-                    'solrdefault' => function () {
+                    'solrdefault' => function ($sm) {
                         return new \VuFind\RecordDriver\SolrDefault(
-                            \VuFind\Config\Reader::getConfig(), null,
-                            \VuFind\Config\Reader::getConfig('searches')
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+                            null,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('searches')
                         );
                     },
-                    'solrmarc' => function () {
+                    'solrmarc' => function ($sm) {
                         return new \VuFind\RecordDriver\SolrMarc(
-                            \VuFind\Config\Reader::getConfig(), null,
-                            \VuFind\Config\Reader::getConfig('searches')
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+                            null,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('searches')
                         );
                     },
-                    'solrreserves' => function () {
+                    'solrreserves' => function ($sm) {
                         return new \VuFind\RecordDriver\SolrReserves(
-                            \VuFind\Config\Reader::getConfig(), null,
-                            \VuFind\Config\Reader::getConfig('searches')
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+                            null,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('searches')
                         );
                     },
-                    'solrvudl' => function () {
+                    'solrvudl' => function ($sm) {
                         return new \VuFind\RecordDriver\SolrVudl(
-                            \VuFind\Config\Reader::getConfig(), null,
-                            \VuFind\Config\Reader::getConfig('searches')
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+                            null,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('searches')
                         );
                     },
                     'summon' => function ($sm) {
-                        $summon = \VuFind\Config\Reader::getConfig('Summon');
+                        $summon = $sm->getServiceLocator()->get('VuFind\Config')->get('Summon');
                         $driver = new \VuFind\RecordDriver\Summon(
-                            \VuFind\Config\Reader::getConfig(), $summon, $summon
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+                            $summon, $summon
                         );
                         $driver->setDateConverter(
                             $sm->getServiceLocator()->get('VuFind\DateConverter')
                         );
                         return $driver;
                     },
-                    'worldcat' => function () {
+                    'worldcat' => function ($sm) {
                         return new \VuFind\RecordDriver\WorldCat(
-                            \VuFind\Config\Reader::getConfig(),
-                            \VuFind\Config\Reader::getConfig('WorldCat')
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config'),
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('WorldCat')
                         );
                     },
                 ),
@@ -525,7 +533,7 @@ $config = array(
                         // If VuFind is configured to suppress the holdings tab when the
                         // ILS driver specifies no holdings, we need to pass in a connection
                         // object:
-                        $config = \VuFind\Config\Reader::getConfig();
+                        $config = $sm->getServiceLocator()->get('VuFind\Config')->get('config');
                         if (isset($config->Site->hideHoldingsTabWhenEmpty)
                             && $config->Site->hideHoldingsTabWhenEmpty
                         ) {
@@ -563,21 +571,21 @@ $config = array(
                 'factories' => array(
                     '360link' => function ($sm) {
                         return new \VuFind\Resolver\Driver\Threesixtylink(
-                            \VuFind\Config\Reader::getConfig()->OpenURL->url,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config')->OpenURL->url,
                             $sm->getServiceLocator()->get('VuFind\Http')
                                 ->createClient()
                         );
                     },
                     'ezb' => function ($sm) {
                         return new \VuFind\Resolver\Driver\Ezb(
-                            \VuFind\Config\Reader::getConfig()->OpenURL->url,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config')->OpenURL->url,
                             $sm->getServiceLocator()->get('VuFind\Http')
                                 ->createClient()
                         );
                     },
                     'sfx' => function ($sm) {
                         return new \VuFind\Resolver\Driver\Sfx(
-                            \VuFind\Config\Reader::getConfig()->OpenURL->url,
+                            $sm->getServiceLocator()->get('VuFind\Config')->get('config')->OpenURL->url,
                             $sm->getServiceLocator()->get('VuFind\Http')
                                 ->createClient()
                         );
@@ -605,7 +613,7 @@ $config = array(
                 'abstract_factories' => array('VuFind\Statistics\Driver\PluginFactory'),
                 'factories' => array(
                     'file' => function ($sm) {
-                        $config = \VuFind\Config\Reader::getConfig();
+                        $config = $sm->getServiceLocator()->get('VuFind\Config')->get('config');
                         $folder = isset($config->Statistics->file)
                             ? $config->Statistics->file : sys_get_temp_dir();
                         return new \VuFind\Statistics\Driver\File($folder);