diff --git a/core/DbHelper.php b/core/DbHelper.php
index 8dbf7d0a9e299bcb5cfd6bcf07c2142c1a239009..0c5ed7905973ca7f37f325c962b45350bcf63858 100644
--- a/core/DbHelper.php
+++ b/core/DbHelper.php
@@ -11,6 +11,7 @@ namespace Piwik;
 use Exception;
 use Piwik\Db\Adapter;
 use Piwik\Db\Schema;
+use Piwik\DataAccess\ArchiveTableCreator;
 
 /**
  * Contains database related helper functions.
@@ -173,4 +174,17 @@ class DbHelper
         return Schema::getInstance()->getTableCreateSql($tableName);
     }
 
-}
+    /**
+     * Deletes archive tables. For use in tests.
+     */
+    public static function deleteArchiveTables()
+    {
+        foreach (ArchiveTableCreator::getTablesArchivesInstalled() as $table) {
+            Log::debug("Dropping table $table");
+
+            Db::query("DROP TABLE IF EXISTS `$table`");
+        }
+
+        ArchiveTableCreator::refreshTableList($forceReload = true);
+    }
+}
\ No newline at end of file
diff --git a/tests/PHPUnit/Fixtures/UITestFixture.php b/tests/PHPUnit/Fixtures/UITestFixture.php
index 88921238fa3d4c7e39d78cb670aa022460bcc1d9..8ff22824029203cf523fa92ccff7d13b9b6d7bb4 100644
--- a/tests/PHPUnit/Fixtures/UITestFixture.php
+++ b/tests/PHPUnit/Fixtures/UITestFixture.php
@@ -21,6 +21,7 @@ use Piwik\Plugins\UsersManager\API as UsersManagerAPI;
 use Piwik\Plugins\SitesManager\API as SitesManagerAPI;
 use Piwik\WidgetsList;
 use Piwik\Tests\Framework\OverrideLogin;
+use Piwik\Tests\Framework\TestCase\SystemTestCase;
 
 /**
  * Fixture for UI tests.
diff --git a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php
index b515cad8396f077b090e886a00e60f5ce9081d04..e153dc5f2fa037d62886085c3428de5b1439046b 100755
--- a/tests/PHPUnit/Framework/TestCase/SystemTestCase.php
+++ b/tests/PHPUnit/Framework/TestCase/SystemTestCase.php
@@ -569,13 +569,7 @@ abstract class SystemTestCase extends PHPUnit_Framework_TestCase
      */
     public static function deleteArchiveTables()
     {
-        foreach (ArchiveTableCreator::getTablesArchivesInstalled() as $table) {
-            Log::debug("Dropping table $table");
-
-            Db::query("DROP TABLE IF EXISTS `$table`");
-        }
-
-        ArchiveTableCreator::refreshTableList($forceReload = true);
+        DbHelper::deleteArchiveTables();
     }
 
     protected function skipWhenPhp53()
diff --git a/tests/PHPUnit/TestingEnvironment.php b/tests/PHPUnit/TestingEnvironment.php
index b2b875d7fced9225c3d2efd9ecf0731ed56f613c..c52556fa7d2d28273b91d6c50296cf7600ca46e1 100644
--- a/tests/PHPUnit/TestingEnvironment.php
+++ b/tests/PHPUnit/TestingEnvironment.php
@@ -5,6 +5,7 @@ use Piwik\Config;
 use Piwik\Piwik;
 use Piwik\Option;
 use Piwik\Plugin\Manager as PluginManager;
+use Piwik\DbHelper;
 
 require_once PIWIK_INCLUDE_PATH . "/core/Config.php";
 
@@ -217,6 +218,16 @@ class Piwik_TestingEnvironment
                 // pass
             }
         });
+        Piwik::addAction('Platform.initialized', function () use ($testingEnvironment) {
+            static $archivingTablesDeleted = false;
+
+            if ($testingEnvironment->deleteArchiveTables
+                && !$archivingTablesDeleted
+            ) {
+                $archivingTablesDeleted = true;
+                DbHelper::deleteArchiveTables();
+            }
+        });
 
         $testingEnvironment->logVariables();
         $testingEnvironment->executeSetupTestEnvHook();