diff --git a/core/Config.php b/core/Config.php
index e8b3c5346265a52e602cb7248cb1504228d33db4..48fff84be03fd94b12c2824281a63419dbde9fa5 100644
--- a/core/Config.php
+++ b/core/Config.php
@@ -91,6 +91,8 @@ class Config extends Singleton
 
         $this->init();
 
+        // this proxy will not record any data in the production database.
+        // this provides security for Piwik installs and tests were setup.
         if (isset($this->configGlobal['database_tests'])
             || isset($this->configLocal['database_tests'])
         ) {
@@ -113,10 +115,15 @@ class Config extends Singleton
         // the test initialization to create the plugins tables, execute ALTER queries, etc.
         $this->configCache['PluginsInstalled'] = array('PluginsInstalled' => array());
 
+        // DevicesDetection plugin is not yet enabled by default
         if (isset($configGlobal['Plugins'])) {
             $this->configCache['Plugins'] = $this->configGlobal['Plugins'];
             $this->configCache['Plugins']['Plugins'][] = 'DevicesDetection';
         }
+        if (isset($configGlobal['Plugins_Tracker'])) {
+            $this->configCache['Plugins_Tracker'] = $this->configGlobal['Plugins_Tracker'];
+            $this->configCache['Plugins_Tracker']['Plugins_Tracker'][] = 'DevicesDetection';
+        }
 
         // to avoid weird session error in travis
         $this->configCache['General']['session_save_handler'] = 'dbtables';
diff --git a/tests/PHPUnit/Core/SegmentTest.php b/tests/PHPUnit/Core/SegmentTest.php
index f611dcee0a8a818b5cc9111d7bf17e87d9825a96..5a61fe2b335a9330459a7ad7102dfa64a7600465 100644
--- a/tests/PHPUnit/Core/SegmentTest.php
+++ b/tests/PHPUnit/Core/SegmentTest.php
@@ -20,7 +20,6 @@ class SegmentTest extends PHPUnit_Framework_TestCase
         FakeAccess::$superUser = true;
         Access::setSingletonInstance($pseudoMockAccess);
 
-        // Load and install plugins
         IntegrationTestCase::loadAllPlugins();
     }
 
diff --git a/tests/PHPUnit/IntegrationTestCase.php b/tests/PHPUnit/IntegrationTestCase.php
index d54db6e778fd77f25318e0d80f608bd5409fff57..5ad7811a273f9b50845e99c80763575ed5199f13 100755
--- a/tests/PHPUnit/IntegrationTestCase.php
+++ b/tests/PHPUnit/IntegrationTestCase.php
@@ -88,9 +88,8 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
      */
     protected static function installAndLoadPlugins($installPlugins)
     {
+        $plugins = self::getPluginsToLoadDuringTests();
         $pluginsManager = \Piwik\Plugin\Manager::getInstance();
-        $plugins = $pluginsManager->readPluginsDirectory();
-
         $pluginsManager->loadPlugins($plugins);
         if ($installPlugins)
         {
@@ -103,9 +102,8 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
 
     public static function loadAllPlugins()
     {
-        $pluginsManager = \Piwik\Plugin\Manager::getInstance();
-        $pluginsToLoad = $pluginsManager->getAllPluginsNames();
-        $pluginsManager->loadPlugins($pluginsToLoad);
+        $pluginsToLoad = self::getPluginsToLoadDuringTests();
+        \Piwik\Plugin\Manager::getInstance()->loadPlugins($pluginsToLoad);
     }
 
     public static function unloadAllPlugins()
@@ -237,6 +235,18 @@ abstract class IntegrationTestCase extends PHPUnit_Framework_TestCase
         Translate::unloadEnglishTranslation();
     }
 
+    private static function getPluginsToLoadDuringTests()
+    {
+        $manager = \Piwik\Plugin\Manager::getInstance();
+        $toLoad = array();
+        foreach($manager->readPluginsDirectory() as $plugin) {
+            if($manager->isPluginBundledWithCore($plugin)) {
+                $toLoad[] = $plugin;
+            }
+        }
+        return $toLoad;
+    }
+
     public function setUp()
     {
         // Make sure the browser running the test does not influence the Country detection code
diff --git a/tests/PHPUnit/proxy/index.php b/tests/PHPUnit/proxy/index.php
index 712c0c16566ed6fcb2ebe6c94bfe44e4eabf25ff..46941f0ddccbbb774e9368b05033e50888431d2a 100644
--- a/tests/PHPUnit/proxy/index.php
+++ b/tests/PHPUnit/proxy/index.php
@@ -15,22 +15,18 @@ ob_start();
 Piwik_TestingEnvironment::addHooks();
 
 \Piwik\Tracker::setTestEnvironment();
-
-
 \Piwik\Profiler::setupProfilerXHProf();
 
-
 // Disable index.php dispatch since we do it manually below
 define('PIWIK_ENABLE_DISPATCH', false);
 include PIWIK_INCLUDE_PATH . '/index.php';
 
-$controller = \Piwik\FrontController::getInstance();
 /**
  * @return bool
  */
 function loadAllPluginsButOneTheme()
 {
-// Load all plugins that are found so UI tests are really testing real world use case
+    // Load all plugins that are found so UI tests are really testing real world use case
     $pluginsToEnable = \Piwik\Plugin\Manager::getInstance()->getAllPluginsNames();
 
     $themesNotToEnable = array('ExampleTheme', 'LeftMenu', 'PleineLune');
@@ -47,6 +43,7 @@ function loadAllPluginsButOneTheme()
 
 $enableMorpheus = loadAllPluginsButOneTheme();
 
+$controller = \Piwik\FrontController::getInstance();
 $controller->init();
 \Piwik\Filesystem::deleteAllCacheOnUpdate();
 
diff --git a/tests/PHPUnit/proxy/piwik.php b/tests/PHPUnit/proxy/piwik.php
index 3679cdd7a9887ff386f2e7c2bcae1b646e177455..5a3f82df0a90a9adebef3d3dcc4d304d711fcb31 100755
--- a/tests/PHPUnit/proxy/piwik.php
+++ b/tests/PHPUnit/proxy/piwik.php
@@ -7,8 +7,6 @@
  *
  */
 
-// Wrapping the request inside ob_start() calls to ensure that the Test
-// calling us waits for the full request to process before unblocking
 use Piwik\Config;
 use Piwik\DataTable\Manager;
 use Piwik\Option;
@@ -17,23 +15,13 @@ use Piwik\Site;
 use Piwik\Tracker;
 use Piwik\Tracker\Cache;
 
-
 require realpath(dirname(__FILE__)) . "/includes.php";
 
+// Wrapping the request inside ob_start() calls to ensure that the Test
+// calling us waits for the full request to process before unblocking
 ob_start();
 
-// Config files forced to use the test database
-// Note that this also provides security for Piwik installs containing tests files: 
-// this proxy will not record any data in the production database.
 Config::getInstance()->setTestEnvironment();
-Config::getInstance()->PluginsInstalled['PluginsInstalled'] = array();
-try {
-    $trackerPlugins = Config::getInstance()->Plugins_Tracker['Plugins_Tracker'];
-}catch(Exception $e) {
-    $trackerPlugins = array();
-}
-$trackerPlugins[] = 'DevicesDetection';
-Config::getInstance()->Plugins_Tracker['Plugins_Tracker'] = $trackerPlugins;
 GeoIp::$geoIPDatabaseDir = 'tests/lib/geoip-files';
 
 Tracker::setTestEnvironment();