diff --git a/.scrutinizer.yml b/.scrutinizer.yml
index 555eaaf2bfdb55ec6b40f1a9c8898b07a471e345..b52ca59452125907e571c2c31952f8306e1aa162 100644
--- a/.scrutinizer.yml
+++ b/.scrutinizer.yml
@@ -5,13 +5,16 @@ tools:
     config:
       check_variables:
         enabled: false
+    dependency_paths:
+      - libs/
 
 filter:
+  paths:
+    - core/
+    - plugins/
   excluded_paths:
-    - 'tests/*'
-    - 'libs/*'
-    - 'misc/*'
-    - 'lang/*'
+    - '*/tests/*'
+    - '*/Test/*'
 
 build:
   environment:
diff --git a/.travis.yml b/.travis.yml
index 54575ea7979b8983361fad3b11b1beb016c11e2e..ee3153ad650f5c5310c62b5807f1b14b753d963b 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -103,8 +103,6 @@ before_script:
   # configure mysql
   - mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'" # Travis default
 
-  # Uncomment to enable sql_mode STRICT_TRANS_TABLES (new default in Mysql 5.6)
-  - mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'"
   - mysql -e "SELECT @@sql_mode;"
   - mysql -e "SHOW GLOBAL VARIABLES;"
 
diff --git a/composer.lock b/composer.lock
index 3f75b7218269c542d8343c1404fb29d3d1ccbae6..fdddc728f8c39eacad888d88c7da51c704215cbe 100644
--- a/composer.lock
+++ b/composer.lock
@@ -269,12 +269,12 @@
             "source": {
                 "type": "git",
                 "url": "https://github.com/mnapoli/PHP-DI.git",
-                "reference": "27341c05b930e3768f19f4c4b20eec14ce84bd06"
+                "reference": "d7f54f3c1b3523493eb5f4b5ca38bcfd74d96169"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/mnapoli/PHP-DI/zipball/27341c05b930e3768f19f4c4b20eec14ce84bd06",
-                "reference": "27341c05b930e3768f19f4c4b20eec14ce84bd06",
+                "url": "https://api.github.com/repos/mnapoli/PHP-DI/zipball/d7f54f3c1b3523493eb5f4b5ca38bcfd74d96169",
+                "reference": "d7f54f3c1b3523493eb5f4b5ca38bcfd74d96169",
                 "shasum": ""
             },
             "require": {
@@ -299,10 +299,8 @@
                 }
             },
             "autoload": {
-                "psr-0": {
-                    "DI\\": "src/",
-                    "IntegrationTests\\": "tests/",
-                    "UnitTests\\": "tests/"
+                "psr-4": {
+                    "DI\\": "src/DI/"
                 },
                 "files": [
                     "src/DI/functions.php"
@@ -319,7 +317,7 @@
                 "dependency injection",
                 "di"
             ],
-            "time": "2014-11-12 03:18:24"
+            "time": "2014-12-11 22:24:18"
         },
         {
             "name": "mnapoli/phpdocreader",
diff --git a/core/Container/IniConfigDefinitionSource.php b/core/Container/IniConfigDefinitionSource.php
index b84d33d94f6e3e0226d837229843b83d7c1b184a..5d4518196bd527828a8f15181a9b3cc1a4a37bcb 100644
--- a/core/Container/IniConfigDefinitionSource.php
+++ b/core/Container/IniConfigDefinitionSource.php
@@ -9,16 +9,14 @@
 namespace Piwik\Container;
 
 use DI\Definition\Exception\DefinitionException;
-use DI\Definition\MergeableDefinition;
 use DI\Definition\Source\ChainableDefinitionSource;
-use DI\Definition\Source\DefinitionSource;
 use DI\Definition\ValueDefinition;
 use Piwik\Config;
 
 /**
  * Import the old INI config into PHP-DI.
  */
-class IniConfigDefinitionSource implements DefinitionSource, ChainableDefinitionSource
+class IniConfigDefinitionSource extends ChainableDefinitionSource
 {
     /**
      * @var Config
@@ -30,11 +28,6 @@ class IniConfigDefinitionSource implements DefinitionSource, ChainableDefinition
      */
     private $prefix;
 
-    /**
-     * @var DefinitionSource
-     */
-    private $chainedSource;
-
     /**
      * @param Config $config
      * @param string $prefix Prefix for the container entries.
@@ -45,15 +38,10 @@ class IniConfigDefinitionSource implements DefinitionSource, ChainableDefinition
         $this->prefix = $prefix;
     }
 
-    public function getDefinition($name, MergeableDefinition $parentDefinition = null)
+    protected function findDefinition($name)
     {
-        // INI only contains values, so no definition merging here
-        if ($parentDefinition) {
-            return $this->notFound($name, $parentDefinition);
-        }
-
         if (strpos($name, $this->prefix) !== 0) {
-            return $this->notFound($name, $parentDefinition);
+            return null;
         }
 
         list($sectionName, $configKey) = $this->parseEntryName($name);
@@ -65,17 +53,12 @@ class IniConfigDefinitionSource implements DefinitionSource, ChainableDefinition
         }
 
         if (! array_key_exists($configKey, $section)) {
-            return $this->notFound($name, $parentDefinition);
+            return null;
         }
 
         return new ValueDefinition($name, $section[$configKey]);
     }
 
-    public function chain(DefinitionSource $source)
-    {
-        $this->chainedSource = $source;
-    }
-
     private function parseEntryName($name)
     {
         $parts = explode('.', $name, 3);
@@ -102,13 +85,4 @@ class IniConfigDefinitionSource implements DefinitionSource, ChainableDefinition
 
         return $section;
     }
-
-    private function notFound($name, $parentDefinition)
-    {
-        if ($this->chainedSource) {
-            return $this->chainedSource->getDefinition($name, $parentDefinition);
-        }
-
-        return null;
-    }
 }
diff --git a/core/CronArchive.php b/core/CronArchive.php
index 1859e9fbbae54fbbe2eaee872daeca2898248ab5..5e1770c0471df052428d336f891cdd02ad8691b9 100644
--- a/core/CronArchive.php
+++ b/core/CronArchive.php
@@ -427,10 +427,10 @@ class CronArchive
 
         if ($this->archiveAndRespectTTL) {
             Option::clearCachedOption($this->lastRunKey($idSite, "periods"));
-            $lastTimestampWebsiteProcessedPeriods = Option::get($this->lastRunKey($idSite, "periods"));
+            $lastTimestampWebsiteProcessedPeriods = $this->getPeriodLastProcessedTimestamp($idSite);
 
             Option::clearCachedOption($this->lastRunKey($idSite, "day"));
-            $lastTimestampWebsiteProcessedDay = Option::get($this->lastRunKey($idSite, "day"));
+            $lastTimestampWebsiteProcessedDay = $this->getDayLastProcessedTimestamp($idSite);
         }
 
         $this->updateIdSitesInvalidatedOldReports();
@@ -895,7 +895,7 @@ class CronArchive
     {
         $this->todayArchiveTimeToLive = Rules::getTodayArchiveTimeToLive();
         $this->processPeriodsMaximumEverySeconds = $this->getDelayBetweenPeriodsArchives();
-        $this->lastSuccessRunTimestamp = Option::get(self::OPTION_ARCHIVING_FINISHED_TS);
+        $this->lastSuccessRunTimestamp = $this->getLastSuccessRunTimestamp();
         $this->shouldArchiveOnlySitesWithTrafficSince = $this->isShouldArchiveAllSitesWithTrafficSince();
         $this->shouldArchiveOnlySpecificPeriods = $this->getPeriodsToProcess();
 
@@ -1386,4 +1386,39 @@ class CronArchive
 
         return self::MAX_CONCURRENT_API_REQUESTS;
     }
+
+    /**
+     * @param $idSite
+     * @return false|string
+     */
+    private function getPeriodLastProcessedTimestamp($idSite)
+    {
+        $timestamp = Option::get($this->lastRunKey($idSite, "periods"));
+        return $this->sanitiseTimestamp($timestamp);
+    }
+
+    /**
+     * @param $idSite
+     * @return false|string
+     */
+    private function getDayLastProcessedTimestamp($idSite)
+    {
+        $timestamp = Option::get($this->lastRunKey($idSite, "day"));
+        return $this->sanitiseTimestamp($timestamp);
+    }
+
+    /**
+     * @return false|string
+     */
+    private function getLastSuccessRunTimestamp()
+    {
+        $timestamp = Option::get(self::OPTION_ARCHIVING_FINISHED_TS);
+        return $this->sanitiseTimestamp($timestamp);
+    }
+
+    private function sanitiseTimestamp($timestamp)
+    {
+        $now = time();
+        return ($timestamp < $now) ? $timestamp : $now;
+    }
 }
diff --git a/core/DataTable.php b/core/DataTable.php
index 61e8abb1eb29224b1903811b8e0b961aea780db0..895645af0fbcb0626a4c48d5e7f7ae9cf27c6b7b 100644
--- a/core/DataTable.php
+++ b/core/DataTable.php
@@ -356,10 +356,11 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
 
         if ($this->enableRecursiveSort === true) {
             foreach ($this->getRows() as $row) {
-                if (($idSubtable = $row->getIdSubDataTable()) !== null) {
-                    $table = Manager::getInstance()->getTable($idSubtable);
-                    $table->enableRecursiveSort();
-                    $table->sort($functionCallback, $columnSortedBy);
+
+                $subTable = $row->getSubtable();
+                if ($subTable) {
+                    $subTable->enableRecursiveSort();
+                    $subTable->sort($functionCallback, $columnSortedBy);
                 }
             }
         }
@@ -868,8 +869,8 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
     {
         $totalCount = 0;
         foreach ($this->rows as $row) {
-            if (($idSubTable = $row->getIdSubDataTable()) !== null) {
-                $subTable = Manager::getInstance()->getTable($idSubTable);
+            $subTable = $row->getSubtable();
+            if ($subTable) {
                 $count = $subTable->getRowsCountRecursive();
                 $totalCount += $count;
             }
@@ -907,8 +908,9 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
             $row->renameColumn($oldName, $newName);
 
             if ($doRenameColumnsOfSubTables) {
-                if (($idSubDataTable = $row->getIdSubDataTable()) !== null) {
-                    Manager::getInstance()->getTable($idSubDataTable)->renameColumn($oldName, $newName);
+                $subTable = $row->getSubtable();
+                if ($subTable) {
+                    $subTable->renameColumn($oldName, $newName);
                 }
             }
         }
@@ -929,8 +931,9 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
             foreach ($names as $name) {
                 $row->deleteColumn($name);
             }
-            if (($idSubDataTable = $row->getIdSubDataTable()) !== null) {
-                Manager::getInstance()->getTable($idSubDataTable)->deleteColumns($names, $deleteRecursiveInSubtables);
+            $subTable = $row->getSubtable();
+            if ($subTable) {
+                $subTable->deleteColumns($names, $deleteRecursiveInSubtables);
             }
         }
         if (!is_null($this->summaryRow)) {
@@ -1110,20 +1113,13 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
         // but returns all serialized tables and subtable in an array of 1 dimension
         $aSerializedDataTable = array();
         foreach ($this->rows as $row) {
-            if (($idSubTable = $row->getIdSubDataTable()) !== null) {
-                $subTable = null;
-                try {
-                    $subTable = Manager::getInstance()->getTable($idSubTable);
-                } catch(TableNotFoundException $e) {
-                    // This occurs is an unknown & random data issue. Catch Exception and remove subtable from the row.
-                    $row->removeSubtable();
-                    // Go to next row
-                    continue;
-                }
-
+            $subTable = $row->getSubtable();
+            if ($subTable) {
                 $depth++;
                 $aSerializedDataTable = $aSerializedDataTable + $subTable->getSerialized($maximumRowsInSubDataTable, $maximumRowsInSubDataTable, $columnToSortByBeforeTruncation);
                 $depth--;
+            } else {
+                $row->removeSubtable();
             }
         }
         // we load the current Id of the DataTable
@@ -1616,8 +1612,8 @@ class DataTable implements DataTableInterface, \IteratorAggregate, \ArrayAccess
                 // we simply add it (cloning the subtable)
                 // if the row has the subtable already
                 // then we have to recursively sum the subtables
-                if (($idSubTable = $row->getIdSubDataTable()) !== null) {
-                    $subTable = Manager::getInstance()->getTable($idSubTable);
+                $subTable = $row->getSubtable();
+                if ($subTable) {
                     $subTable->metadata[self::COLUMN_AGGREGATION_OPS_METADATA_NAME]
                         = $this->getMetadata(self::COLUMN_AGGREGATION_OPS_METADATA_NAME);
                     $rowFound->sumSubtable($subTable);
diff --git a/core/DataTable/BaseFilter.php b/core/DataTable/BaseFilter.php
index fb2dc009f9db209f26361e63b4051ae9c73737e6..dc4756d82ed438fc7957d1c96d94051e02b44461 100644
--- a/core/DataTable/BaseFilter.php
+++ b/core/DataTable/BaseFilter.php
@@ -73,8 +73,8 @@ abstract class BaseFilter
         if (!$this->enableRecursive) {
             return;
         }
-        if ($row->isSubtableLoaded()) {
-            $subTable = Manager::getInstance()->getTable($row->getIdSubDataTable());
+        $subTable = $row->getSubtable();
+        if ($subTable) {
             $this->filter($subTable);
         }
     }
diff --git a/core/DataTable/Filter/PatternRecursive.php b/core/DataTable/Filter/PatternRecursive.php
index 697403c2e340d3c6b6341a16780958b908e0a56e..f383a132609e427ed8dbb45930474606b365a97a 100644
--- a/core/DataTable/Filter/PatternRecursive.php
+++ b/core/DataTable/Filter/PatternRecursive.php
@@ -62,18 +62,15 @@ class PatternRecursive extends BaseFilter
             // AND 2 - the label is not found in the children
             $patternNotFoundInChildren = false;
 
-            try {
-                $idSubTable = $row->getIdSubDataTable();
-                $subTable = Manager::getInstance()->getTable($idSubTable);
-
+            $subTable = $row->getSubtable();
+            if(!$subTable) {
+                $patternNotFoundInChildren = true;
+            } else {
                 // we delete the row if we couldn't find the pattern in any row in the
                 // children hierarchy
                 if ($this->filter($subTable) == 0) {
                     $patternNotFoundInChildren = true;
                 }
-            } catch (Exception $e) {
-                // there is no subtable loaded for example
-                $patternNotFoundInChildren = true;
             }
 
             if ($patternNotFoundInChildren
diff --git a/core/DataTable/Filter/ReplaceSummaryRowLabel.php b/core/DataTable/Filter/ReplaceSummaryRowLabel.php
index 3c1e31e2d0cd9a99e22c0fc3c2fb4b55536ae887..1e550f6e3ff2185bd83b0fdcefb29664450967bd 100644
--- a/core/DataTable/Filter/ReplaceSummaryRowLabel.php
+++ b/core/DataTable/Filter/ReplaceSummaryRowLabel.php
@@ -65,8 +65,8 @@ class ReplaceSummaryRowLabel extends BaseFilter
 
         // recurse
         foreach ($rows as $row) {
-            if ($row->isSubtableLoaded()) {
-                $subTable = Manager::getInstance()->getTable($row->getIdSubDataTable());
+            $subTable = $row->getSubtable();
+            if ($subTable) {
                 $this->filter($subTable);
             }
         }
diff --git a/core/DataTable/Manager.php b/core/DataTable/Manager.php
index d225b8fb87a3ad6e3e0899ec4065ae39defc18aa..07e7bc01b2e70a5d4c991ad75d4a30bcd2488271 100644
--- a/core/DataTable/Manager.php
+++ b/core/DataTable/Manager.php
@@ -61,7 +61,7 @@ class Manager extends Singleton
     public function getTable($idTable)
     {
         if (!isset($this->tables[$idTable])) {
-            throw new TableNotFoundException(sprintf("This report has been reprocessed since your last click. To see this error less often, please increase the timeout value in seconds in Settings > General Settings. (error: id %s not found).", $idTable));
+            throw new TableNotFoundException(sprintf("Error: table id %s not found in memory. (If this error is causing you problems in production, please report it in Piwik issue tracker.)", $idTable));
         }
 
         return $this->tables[$idTable];
diff --git a/core/DataTable/Renderer/Console.php b/core/DataTable/Renderer/Console.php
index 0e1c127fb140f3a6186f4ffb0fca9243d9882d98..a4fcbff0c5af2ef9aaff9e4b342f2de3fa91892c 100644
--- a/core/DataTable/Renderer/Console.php
+++ b/core/DataTable/Renderer/Console.php
@@ -120,14 +120,10 @@ class Console extends Renderer
                 . $row->getIdSubDataTable() . "]<br />\n";
 
             if (!is_null($row->getIdSubDataTable())) {
-                if ($row->isSubtableLoaded()) {
+                $subTable = $row->getSubtable();
+                if ($subTable) {
                     $depth++;
-                    $output .= $this->renderTable(
-                        Manager::getInstance()->getTable(
-                            $row->getIdSubDataTable()
-                        ),
-                        $prefix . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'
-                    );
+                    $output .= $this->renderTable($subTable, $prefix . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
                     $depth--;
                 } else {
                     $output .= "-- Sub DataTable not loaded<br />\n";
diff --git a/core/DataTable/Renderer/Php.php b/core/DataTable/Renderer/Php.php
index 56360b939ca41b2b04739ac098100f246de2cfaa..eb6d32a3e3e8c8634146146d9dd6e1970a829c67 100644
--- a/core/DataTable/Renderer/Php.php
+++ b/core/DataTable/Renderer/Php.php
@@ -206,10 +206,11 @@ class Php extends Renderer
                 $newRow['issummaryrow'] = true;
             }
 
+            $subTable = $row->getSubtable();
             if ($this->isRenderSubtables()
-                && $row->isSubtableLoaded()
+                && $subTable
             ) {
-                $subTable = $this->renderTable(Manager::getInstance()->getTable($row->getIdSubDataTable()));
+                $subTable = $this->renderTable($subTable);
                 $newRow['subtable'] = $subTable;
                 if ($this->hideIdSubDatatable === false
                     && isset($newRow['metadata']['idsubdatatable_in_db'])
diff --git a/core/DataTable/Row.php b/core/DataTable/Row.php
index c6c0d21e9f5041c814bab9539f62a24294d81f60..0e7d329d779b0f283356d90beeb6b4db9c795cb6 100644
--- a/core/DataTable/Row.php
+++ b/core/DataTable/Row.php
@@ -317,7 +317,11 @@ class Row implements \ArrayAccess, \IteratorAggregate
     public function getSubtable()
     {
         if ($this->isSubtableLoaded()) {
-            return Manager::getInstance()->getTable($this->getIdSubDataTable());
+            try {
+                return Manager::getInstance()->getTable($this->getIdSubDataTable());
+            } catch(TableNotFoundException $e) {
+                // edge case
+            }
         }
         return false;
     }
diff --git a/core/DataTable/Row/DataTableSummaryRow.php b/core/DataTable/Row/DataTableSummaryRow.php
index 7d477a304cee1ef7737a45ffcbc9e5bc9d45049d..2c9eda5e8e0e782df461111c4ee08b2d5b9ff590 100644
--- a/core/DataTable/Row/DataTableSummaryRow.php
+++ b/core/DataTable/Row/DataTableSummaryRow.php
@@ -47,9 +47,8 @@ class DataTableSummaryRow extends Row
      */
     public function recalculate()
     {
-        $id = $this->getIdSubDataTable();
-        if ($id !== null) {
-            $subTable = Manager::getInstance()->getTable($id);
+        $subTable = $this->getSubtable();
+        if ($subTable) {
             $this->sumTable($subTable);
         }
     }
diff --git a/core/Tracker/PageUrl.php b/core/Tracker/PageUrl.php
index ae55b48aac3169e8abd3bb72e9131fdfe2e45831..4174a3168fd862ff464a75938cf1ccc13e32b0e4 100644
--- a/core/Tracker/PageUrl.php
+++ b/core/Tracker/PageUrl.php
@@ -256,13 +256,18 @@ class PageUrl
      */
     public static function reencodeParameters(&$queryParameters, $encoding = false)
     {
-        // if query params are encoded w/ non-utf8 characters (due to browser bug or whatever),
-        // encode to UTF-8.
-        if (false !== $encoding
-            && 'utf-8' != strtolower($encoding)
-            && function_exists('mb_check_encoding')
-        ) {
-            $queryParameters = PageUrl::reencodeParametersArray($queryParameters, $encoding);
+        if (function_exists('mb_check_encoding')) {
+            // if query params are encoded w/ non-utf8 characters (due to browser bug or whatever),
+            // encode to UTF-8.
+            if (strtolower($encoding) != 'utf-8'
+                && $encoding != false
+            ) {
+                Common::printDebug("Encoding page URL query parameters to $encoding.");
+
+                $queryParameters = PageUrl::reencodeParametersArray($queryParameters, $encoding);
+            }
+        } else {
+            Common::printDebug("Page charset supplied in tracking request, but mbstring extension is not available.");
         }
 
         return $queryParameters;
@@ -349,5 +354,15 @@ class PageUrl
 
         return array();
     }
-}
 
+    public static function urldecodeValidUtf8($value)
+    {
+        $value = urldecode($value);
+        if (function_exists('mb_check_encoding')
+            && !@mb_check_encoding($value, 'utf-8')
+        ) {
+            return urlencode($value);
+        }
+        return $value;
+    }
+}
\ No newline at end of file
diff --git a/libs/PiwikTracker/PiwikTracker.php b/libs/PiwikTracker/PiwikTracker.php
index c998e1913dee40dd1031c880f561a9788c833a68..ffb57b619548188b110ee8c2f360a9029299c54f 100644
--- a/libs/PiwikTracker/PiwikTracker.php
+++ b/libs/PiwikTracker/PiwikTracker.php
@@ -160,22 +160,28 @@ class PiwikTracker
      */
     function __construct($idSite, $apiUrl = '')
     {
-        $this->userAgent = false;
-        $this->localHour = false;
-        $this->localMinute = false;
-        $this->localSecond = false;
-        $this->hasCookies = false;
-        $this->plugins = false;
-        $this->pageCustomVar = false;
+        $this->ecommerceItems = array();
+        $this->attributionInfo = false;
         $this->eventCustomVar = false;
-        $this->customData = false;
         $this->forcedDatetime = false;
         $this->forcedNewVisit = false;
-        $this->token_auth = false;
-        $this->attributionInfo = false;
-        $this->ecommerceLastOrderTimestamp = false;
-        $this->ecommerceItems = array();
         $this->generationTime = false;
+        $this->pageCustomVar = false;
+        $this->customData = false;
+        $this->hasCookies = false;
+        $this->token_auth = false;
+        $this->userAgent = false;
+        $this->country = false;
+        $this->region = false;
+        $this->city = false;
+        $this->lat = false;
+        $this->long = false;
+        $this->width = false;
+        $this->height = false;
+        $this->plugins = false;
+        $this->localHour = false;
+        $this->localMinute = false;
+        $this->localSecond = false;
 
         $this->idSite = $idSite;
         $this->urlReferrer = !empty($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : false;
@@ -212,7 +218,7 @@ class PiwikTracker
         $this->visitCount = 0;
         $this->currentVisitTs = false;
         $this->lastVisitTs = false;
-        $this->lastEcommerceOrderTs = false;
+        $this->ecommerceLastOrderTimestamp = false;
 
         // Allow debug while blocking the request
         $this->requestTimeout = 600;
@@ -529,6 +535,8 @@ class PiwikTracker
 
     /**
      * Get cookie name with prefix and domain hash
+     * @param string $cookieName
+     * @return string
      */
     protected function getCookieName($cookieName) {
         // NOTE: If the cookie name is changed, we must also update the method in piwik.js with the same name.
@@ -553,8 +561,8 @@ class PiwikTracker
      *
      * @param string $category The Event Category (Videos, Music, Games...)
      * @param string $action The Event's Action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...)
-     * @param string $name (optional) The Event's object Name (a particular Movie name, or Song name, or File name...)
-     * @param float $value (optional) The Event's value
+     * @param string|bool $name (optional) The Event's object Name (a particular Movie name, or Song name, or File name...)
+     * @param float|bool $value (optional) The Event's value
      * @return mixed Response string or true if using bulk requests.
      */
     public function doTrackEvent($category, $action, $name = false, $value = false)
@@ -568,7 +576,7 @@ class PiwikTracker
      *
      * @param string $contentName The name of the content. For instance 'Ad Foo Bar'
      * @param string $contentPiece The actual content. For instance the path to an image, video, audio, any text
-     * @param string|false $contentTarget (optional) The target of the content. For instance the URL of a landing page.
+     * @param string|bool $contentTarget (optional) The target of the content. For instance the URL of a landing page.
      * @return mixed Response string or true if using bulk requests.
      */
     public function doTrackContentImpression($contentName, $contentPiece = 'Unknown', $contentTarget = false)
@@ -584,7 +592,7 @@ class PiwikTracker
      * @param string $interaction The name of the interaction with the content. For instance a 'click'
      * @param string $contentName The name of the content. For instance 'Ad Foo Bar'
      * @param string $contentPiece The actual content. For instance the path to an image, video, audio, any text
-     * @param string|false $contentTarget (optional) The target the content leading to when an interaction occurs. For instance the URL of a landing page.
+     * @param string|bool $contentTarget (optional) The target the content leading to when an interaction occurs. For instance the URL of a landing page.
      * @return mixed Response string or true if using bulk requests.
      */
     public function doTrackContentInteraction($interaction, $contentName, $contentPiece = 'Unknown', $contentTarget = false)
@@ -891,9 +899,10 @@ class PiwikTracker
      * @see doTrackEvent()
      * @param string $category The Event Category (Videos, Music, Games...)
      * @param string $action The Event's Action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...)
-     * @param string $name (optional) The Event's object Name (a particular Movie name, or Song name, or File name...)
-     * @param float $value (optional) The Event's value
+     * @param string|bool $name (optional) The Event's object Name (a particular Movie name, or Song name, or File name...)
+     * @param float|bool $value (optional) The Event's value
      * @return string URL to piwik.php with all parameters set to track the pageview
+     * @throws
      */
     public function getUrlTrackEvent($category, $action, $name = false, $value = false)
     {
@@ -1199,7 +1208,7 @@ class PiwikTracker
         $this->currentVisitTs = $parts[3];
         $this->lastVisitTs = $parts[4];
         if(isset($parts[5])) {
-            $this->lastEcommerceOrderTs = $parts[5];
+            $this->ecommerceLastOrderTimestamp = $parts[5];
         }
         return true;
     }
@@ -1496,14 +1505,13 @@ class PiwikTracker
             '&_idts=' . $this->createTs .
             '&_idvc=' . $this->visitCount .
             (!empty($this->lastVisitTs) ? '&_viewts=' . $this->lastVisitTs : '' ) .
-            (!empty($this->lastEcommerceOrderTs) ? '&_ects=' . $this->lastEcommerceOrderTs : '' ) .
+            (!empty($this->ecommerceLastOrderTimestamp) ? '&_ects=' . urlencode($this->ecommerceLastOrderTimestamp) : '') .
 
             // These parameters are set by the JS, but optional when using API
             (!empty($this->plugins) ? $this->plugins : '') .
             (($this->localHour !== false && $this->localMinute !== false && $this->localSecond !== false) ? '&h=' . $this->localHour . '&m=' . $this->localMinute . '&s=' . $this->localSecond : '') .
             (!empty($this->width) && !empty($this->height) ? '&res=' . $this->width . 'x' . $this->height : '') .
             (!empty($this->hasCookies) ? '&cookie=' . $this->hasCookies : '') .
-            (!empty($this->ecommerceLastOrderTimestamp) ? '&_ects=' . urlencode($this->ecommerceLastOrderTimestamp) : '') .
 
             // Various important attributes
             (!empty($this->customData) ? '&data=' . $this->customData : '') .
@@ -1694,7 +1702,7 @@ class PiwikTracker
 
         // Set the 'id' cookie
         $visitCount = $this->visitCount + 1;
-        $cookieValue = $this->getVisitorId() . '.' . $this->createTs . '.' . $visitCount . '.' . $this->currentTs . '.' . $this->lastVisitTs . '.' . $this->lastEcommerceOrderTs;
+        $cookieValue = $this->getVisitorId() . '.' . $this->createTs . '.' . $visitCount . '.' . $this->currentTs . '.' . $this->lastVisitTs . '.' . $this->ecommerceLastOrderTimestamp;
         $this->setCookie('id', $cookieValue, $this->configVisitorCookieTimeout);
 
         // Set the 'cvar' cookie
diff --git a/libs/upgradephp/upgrade.php b/libs/upgradephp/upgrade.php
index 322ffd0455ea11c5959707c4c044c87b5c4748e4..903611c9705feb23d72ab2705329176b091b2b19 100644
--- a/libs/upgradephp/upgrade.php
+++ b/libs/upgradephp/upgrade.php
@@ -633,8 +633,8 @@ function _readfile($filename, $byteStart, $byteEnd, $useIncludePath = false, $co
         for ($pos = $byteStart; $pos < $byteEnd && !feof($handle); $pos = ftell($handle)) {
 			echo fread($handle, min(8192, $byteEnd - $pos));
 
-			ob_flush();
-			flush();
+			@ob_flush();
+			@flush();
 		}
 
 		fclose($handle);
diff --git a/misc/log-analytics/README.md b/misc/log-analytics/README.md
index a9d53d8dfc16910b3ba7113a39ac4b50c49b2721..d7eb5aff3a552dc623ea15c01148c6cacd3e2895 100644
--- a/misc/log-analytics/README.md
+++ b/misc/log-analytics/README.md
@@ -22,6 +22,12 @@ If you wish to track all requests the following command would be used:
 
     python /path/to/piwik/misc/log-analytics/import_logs.py --url=http://mysite/piwik/ --idsite=1234 --recorders=4 --enable-http-errors --enable-http-redirects --enable-static --enable-bots access.log 
 
+### Format Specific Details
+
+* If you are importing Netscaler log files, make sure to specify the **--iis-time-taken-secs** option. Netscaler stores
+  the time-taken field in seconds while most other formats use milliseconds. Using this option will ensure that the
+  log importer interprets the field correctly.
+
 ## How to import your logs automatically every day?
 
 You must first make sure your logs are automatically rotated every day. The most
diff --git a/misc/log-analytics/import_logs.py b/misc/log-analytics/import_logs.py
index 7b46ea3e11b01d738b0ef5a9e229fe83336c1b39..9e57eeb4cb40a8fe7c62873fc77ac058cd78b141 100755
--- a/misc/log-analytics/import_logs.py
+++ b/misc/log-analytics/import_logs.py
@@ -187,48 +187,76 @@ class RegexFormat(BaseFormat):
     def get_all(self,):
         return self.matched.groupdict()
 
-class IisFormat(RegexFormat):
+class W3cExtendedFormat(RegexFormat):
+
+    FIELDS_LINE_PREFIX = '#Fields: '
+
+    fields = {
+        'date': '(?P<date>^\d+[-\d+]+',
+        'time': '[\d+:]+)[.\d]*?', # TODO should not assume date & time will be together not sure how to fix ATM.
+        'cs-uri-stem': '(?P<path>/\S*)',
+        'cs-uri-query': '(?P<query_string>\S*)',
+        'c-ip': '"?(?P<ip>[\d*.]*)"?',
+        'cs(User-Agent)': '(?P<user_agent>".*?"|\S+)',
+        'cs(Referer)': '(?P<referrer>\S+)',
+        'sc-status': '(?P<status>\d+)',
+        'sc-bytes': '(?P<length>\S+)',
+        'cs-host': '(?P<host>\S+)',
+        'cs-username': '(?P<userid>\S+)',
+        'time-taken': '(?P<generation_time_milli>\d+)'
+    }
 
     def __init__(self):
-        super(IisFormat, self).__init__('iis', None, '%Y-%m-%d %H:%M:%S')
+        super(W3cExtendedFormat, self).__init__('w3c_extended', None, '%Y-%m-%d %H:%M:%S')
 
     def check_format(self, file):
-        line = file.readline()
-        if not line.startswith('#Software: Microsoft Internet Information Services '):
+        # collect all header lines and the first line of the logfile
+        header_lines = []
+        while True:
+            line = file.readline()
+
+            if line.startswith('#'):
+                header_lines.append(line)
+            else:
+                break
+        first_line = line
+        fields_line = next((line for line in header_lines if line.startswith(W3cExtendedFormat.FIELDS_LINE_PREFIX)), None)
+
+        if not header_lines or not fields_line:
             file.seek(0)
             return
-        # Skip the next 2 lines.
-        for i in xrange(2):
-            file.readline()
-        # Parse the 4th line (regex)
+
+        # Parse the 4th 'Fields: ' line to create the regex to use
         full_regex = []
-        line = file.readline()
-        fields = {
-            'date': '(?P<date>^\d+[-\d+]+',
-            'time': '[\d+:]+)',
-            'cs-uri-stem': '(?P<path>/\S*)',
-            'cs-uri-query': '(?P<query_string>\S*)',
-            'c-ip': '(?P<ip>[\d*.]*)',
-            'cs(User-Agent)': '(?P<user_agent>\S+)',
-            'cs(Referer)': '(?P<referrer>\S+)',
-            'sc-status': '(?P<status>\d+)',
-            'sc-bytes': '(?P<length>\S+)',
-            'cs-host': '(?P<host>\S+)',
-        }
+
+        expected_fields = W3cExtendedFormat.fields.copy() # turn custom field mapping into field => regex mapping
+        for mapped_field_name, field_name in config.options.custom_w3c_fields.iteritems():
+            expected_fields[mapped_field_name] = W3cExtendedFormat.fields[field_name]
+            del expected_fields[field_name]
+
+        # if the --w3c-time-taken-secs option is used, make sure the time-taken field is interpreted as seconds
+        if config.options.w3c_time_taken_in_secs:
+            expected_fields['time-taken'] = '(?P<generation_time_secs>\S+)'
+        else:
+            # check if we're importing netscaler logs and if so, issue a warning
+            if 'netscaler' in header_lines[1].lower():
+                logging.info("WARNING: netscaler log file being parsed without --w3c-time-taken-secs option. Netscaler"
+                             " stores second values in the time-taken field. If your logfile does this, the aforementioned"
+                             " option must be used in order to get accurate generation times.")
+
         # Skip the 'Fields: ' prefix.
-        line = line[9:]
-        for field in line.split():
+        fields_line = fields_line[9:]
+        for field in fields_line.split():
             try:
-                regex = fields[field]
+                regex = expected_fields[field]
             except KeyError:
                 regex = '\S+'
             full_regex.append(regex)
         self.regex = re.compile(' '.join(full_regex))
 
-        start_pos = file.tell()
-        nextline = file.readline()
+        start_pos = file.tell() - len(first_line)
         file.seek(start_pos)
-        return self.check_format_line(nextline)
+        return self.check_format_line(first_line)
 
 _HOST_PREFIX = '(?P<host>[\w\-\.]*)(?::\d+)? '
 _COMMON_LOG_FORMAT = (
@@ -252,7 +280,8 @@ FORMATS = {
     'common_vhost': RegexFormat('common_vhost', _HOST_PREFIX + _COMMON_LOG_FORMAT),
     'ncsa_extended': RegexFormat('ncsa_extended', _NCSA_EXTENDED_LOG_FORMAT),
     'common_complete': RegexFormat('common_complete', _HOST_PREFIX + _NCSA_EXTENDED_LOG_FORMAT),
-    'iis': IisFormat(),
+    'w3c_extended': W3cExtendedFormat(),
+    'iis': W3cExtendedFormat(), # for backwards compatibility TODO test
     's3': RegexFormat('s3', _S3_LOG_FORMAT),
     'icecast2': RegexFormat('icecast2', _ICECAST2_LOG_FORMAT),
     'nginx_json': JsonFormat('nginx_json'),
@@ -485,8 +514,37 @@ class Configuration(object):
             '--download-extensions', dest='download_extensions', default=None,
             help="By default Piwik tracks as Downloads the most popular file extensions. If you set this parameter (format: pdf,doc,...) then files with an extension found in the list will be imported as Downloads, other file extensions downloads will be skipped."
         )
+        option_parser.add_option(
+            '--w3c-map-field', action='callback', callback=self._set_w3c_field_map, type='string',
+            help="Map a custom log entry field in your W3C log to a default one. Use this option to load custom log "
+                 "files that use the W3C extended log format such as those from the Advanced Logging W3C module. Used "
+                 "as, eg, --w3c-map-field my-date=date. Recognized default fields include: %s"
+                     % (', '.join(W3cExtendedFormat.fields.keys()))
+        )
+        option_parser.add_option(
+            '--w3c-time-taken-secs', action='store_true', default=False, dest='w3c_time_taken_in_secs',
+            help="If set, interprets the time-taken W3C log field as a number of seconds. This must be set for importing"
+                 " netscaler logs."
+        )
         return option_parser
 
+    def _set_w3c_field_map(self, option, opt_str, value, parser):
+        parts = value.split('=')
+
+        if len(parts) != 2:
+            fatal_error("Invalid --w3c-map-field option: '%s'" % value)
+
+        custom_name, default_name = parts
+
+        if default_name not in W3cExtendedFormat.fields:
+            fatal_error("custom W3C field mapping error: don't know how to parse and use the '%' field" % default_name)
+            return
+
+        if not hasattr(parser.values, 'custom_w3c_fields'):
+            parser.values.custom_w3c_fields = {}
+
+        parser.values.custom_w3c_fields[custom_name] = default_name
+
     def _parse_args(self, option_parser):
         """
         Parse the command line args and create self.options and self.filenames.
@@ -500,6 +558,9 @@ class Configuration(object):
             print(option_parser.format_help())
             sys.exit(1)
 
+        if not hasattr(self.options, 'custom_w3c_fields'):
+            self.options.custom_w3c_fields = {}
+
         # Configure logging before calling logging.{debug,info}.
         logging.basicConfig(
             format='%(asctime)s: [%(levelname)s] %(message)s',
@@ -1250,8 +1311,9 @@ class Recorder(object):
             'cdt': self.date_to_piwik(hit.date),
             'idsite': site_id,
             'dp': '0' if config.options.reverse_dns else '1',
-            'ua': hit.user_agent.encode('utf8'),
+            'ua': hit.user_agent.encode('utf8')
         }
+
         if config.options.replay_tracking:
             # prevent request to be force recorded when option replay-tracking
             args['rec'] = '0'
@@ -1499,7 +1561,7 @@ class Parser(object):
 
         format = False
 
-        # check the format using the file (for formats like the IIS one)
+        # check the format using the file (for formats like the W3cExtendedFormat one)
         format = Parser.check_format(file)
 
         # check the format using the first N lines (to avoid irregular ones)
@@ -1507,6 +1569,9 @@ class Parser(object):
         limit = 100000
         while not format and lineno < limit:
             line = file.readline()
+            if not line: # if at eof, don't keep looping
+                break
+
             lineno = lineno + 1
 
             logging.debug("Detecting format against line %i" % lineno)
@@ -1610,7 +1675,7 @@ class Parser(object):
             except BaseFormatException:
                 hit.path, _, hit.query_string = hit.full_path.partition(config.options.query_string_delimiter)
 
-            # IIS detaults to - when there is no query string, but we want empty string
+            # W3cExtendedFormat detaults to - when there is no query string, but we want empty string
             if hit.query_string == '-':
                 hit.query_string = ''
 
@@ -1625,6 +1690,11 @@ class Parser(object):
 
             try:
                 hit.user_agent = format.get('user_agent')
+
+                # in case a format parser included enclosing quotes, remove them so they are not
+                # sent to Piwik
+                if hit.user_agent.startswith('"'):
+                    hit.user_agent = hit.user_agent[1:-1]
             except BaseFormatException:
                 hit.user_agent = ''
 
@@ -1632,7 +1702,7 @@ class Parser(object):
             try:
                 hit.length = int(format.get('length'))
             except (ValueError, BaseFormatException):
-                # Some lines or formats don't have a length (e.g. 304 redirects, IIS logs)
+                # Some lines or formats don't have a length (e.g. 304 redirects, W3C logs)
                 hit.length = 0
 
             try:
@@ -1641,7 +1711,10 @@ class Parser(object):
                 try:
                     hit.generation_time_milli = int(format.get('generation_time_micro')) / 1000
                 except BaseFormatException:
-                    hit.generation_time_milli = 0
+                    try:
+                        hit.generation_time_milli = int(format.get('generation_time_secs')) * 1000
+                    except BaseFormatException:
+                        hit.generation_time_milli = 0
 
             if config.options.log_hostname:
                 hit.host = config.options.log_hostname
@@ -1652,6 +1725,16 @@ class Parser(object):
                     # Some formats have no host.
                     pass
 
+            # Add userid
+            try:
+                hit.userid = None
+
+                userid = format.get('userid')
+                if userid != '-':
+                    hit.args['uid'] = userid
+            except:
+                pass
+
             # Check if the hit must be excluded.
             if not all((method(hit) for method in self.check_methods)):
                 continue
diff --git a/misc/log-analytics/tests/logs/iis_custom.log b/misc/log-analytics/tests/logs/iis_custom.log
new file mode 100644
index 0000000000000000000000000000000000000000..73797b64ddc641a07209dbb212d307bef0127e60
--- /dev/null
+++ b/misc/log-analytics/tests/logs/iis_custom.log
@@ -0,0 +1,7 @@
+#Software: IIS Advanced Logging Module
+#Version: 1.0
+#Start-Date: 2014-11-18 00:00:00.128
+#Fields:  date-local time-local s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) cs(Host) sc-status sc-substatus sc-win32-status TimeTakenMS
+2012-08-15 17:00:00.363 10.10.28.140 GET /Products/theProduct - 80 - "70.95.0.0" "Mozilla/5.0 (Linux; Android 4.4.4; SM-G900V Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36" "http://example.com/Search/SearchResults.pg?informationRecipient.languageCode.c=en" "xzy.example.com" 200 0 0 109
+2012-08-15 17:00:00.660 10.10.28.140 GET /Topic/hw43061 - 80 - "70.95.32.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36" - "example.hello.com" 301 0 0 0
+2012-08-15 17:00:00.675 10.10.28.140 GET /hello/world/6,681965 - 80 - "173.5.0.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36" - "hello.example.com" 404 0 0 359
diff --git a/misc/log-analytics/tests/logs/netscaler.log b/misc/log-analytics/tests/logs/netscaler.log
new file mode 100644
index 0000000000000000000000000000000000000000..380c09d2c449c25a3fb410758f676673749adfb4
--- /dev/null
+++ b/misc/log-analytics/tests/logs/netscaler.log
@@ -0,0 +1,5 @@
+#Version: 1.0
+#Software: Netscaler Web Logging(NSWL)
+#Date: 2014-02-18 11:55:13
+#Fields: date time c-ip cs-username sc-servicename s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs-bytes sc-bytes time-taken cs-version cs(User-Agent) cs(Cookie) cs(Referer)
+2012-08-16 11:55:13 172.20.1.0 - HTTP 192.168.6.254 8080 GET /Citrix/XenApp/Wan/auth/login.jsp - 302 247 355 1 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) - -
diff --git a/misc/log-analytics/tests/tests.py b/misc/log-analytics/tests/tests.py
index 37af5eee8f5ab9bf9dd3b8ae1eaf35d0cc8a1d03..73811a37176e32d60f566633e52956b2d3a02489 100644
--- a/misc/log-analytics/tests/tests.py
+++ b/misc/log-analytics/tests/tests.py
@@ -1,6 +1,7 @@
 # vim: et sw=4 ts=4:
 import functools
 import os
+import datetime
 
 import import_logs
 
@@ -23,19 +24,30 @@ def tearDownModule():
 def test_format_detection():
     def _test(format_name):
         file = open('logs/%s.log' % format_name)
+        import_logs.config = Config()
         format = import_logs.Parser.detect_format(file)
         assert(format is not None)
-        assert(format.name == format_name)
+        if format_name == 'iis':
+            assert(format.name == 'w3c_extended')
+        else:
+            assert(format.name == format_name)
 
     def _test_junk(format_name):
         tmp_path = add_junk_to_file('logs/%s.log' % format_name)
 
         file = open(tmp_path)
+        import_logs.config = Config()
         format = import_logs.Parser.detect_format(file)
         assert(format is not None)
-        assert(format.name == format_name)
+        if format_name == 'iis':
+            assert(format.name == 'w3c_extended')
+        else:
+            assert(format.name == format_name)
 
     for format_name in import_logs.FORMATS.iterkeys():
+        if format_name == 'w3c_extended': # tested by iis and netscaler log files
+            continue
+
         f = functools.partial(_test, format_name)
         f.description = 'Testing autodetection of format ' + format_name
         yield f
@@ -64,6 +76,8 @@ class Options(object):
     included_paths = []
     enable_http_errors = False
     download_extensions = 'doc,pdf'
+    custom_w3c_fields = {}
+    w3c_time_taken_in_secs = False
 
 class Config(object):
     """Mock configuration."""
@@ -183,6 +197,8 @@ def test_replay_tracking_arguments():
 def parse_log_file_line(format_name, file_):
     format = import_logs.FORMATS[format_name]
 
+    import_logs.config.options.custom_w3c_fields = {}
+
     file = open(file_)
     match = format.check_format(file)
     file.close()
@@ -226,7 +242,8 @@ def check_iis_groups(groups):
     assert groups['host'] == 'example.com'
 
     expected_hit_properties = ['date', 'path', 'query_string', 'ip', 'referrer', 'user_agent',
-    						   'status', 'length', 'host']
+                               'status', 'length', 'host', 'userid', 'generation_time_milli']
+
     for property_name in groups.keys():
         assert property_name in expected_hit_properties
 
@@ -272,15 +289,135 @@ def test_format_parsing():
         _test(format_name, tmp_path)
 
     for format_name in import_logs.FORMATS.iterkeys():
+        if format_name == 'w3c_extended': # tested by IIS and netscaler logs
+            continue
+
         f = functools.partial(_test, format_name, 'logs/' + format_name + '.log')
         f.description = 'Testing parsing of format "%s"' % format_name
         yield f
 
         f = functools.partial(_test_with_junk, format_name, 'logs/' + format_name + '.log')
-        f.description = 'Testing parsin of format "%s" with junk appended to path' % format_name
+        f.description = 'Testing parsing of format "%s" with junk appended to path' % format_name
         yield f
 
     f = functools.partial(_test, 'common', 'logs/ncsa_extended.log')
     f.description = 'Testing parsing of format "common" with ncsa_extended log'
     yield f
 
+
+def test_iis_custom_format():
+    """test IIS custom format name parsing."""
+
+    file_ = 'logs/iis_custom.log'
+
+    # have to override previous globals override for this test
+    import_logs.config.options.custom_w3c_fields = {
+        'date-local': 'date',
+        'time-local': 'time',
+        'cs(Host)': 'cs-host',
+        'TimeTakenMS': 'time-taken'
+    }
+    Recorder.recorders = []
+    import_logs.parser = import_logs.Parser()
+    import_logs.config.format = None
+    import_logs.config.options.enable_http_redirects = True
+    import_logs.config.options.enable_http_errors = True
+    import_logs.config.options.replay_tracking = False
+    import_logs.parser.parse(file_)
+
+    hits = [hit.__dict__ for hit in Recorder.recorders]
+
+    assert hits[0]['status'] == '200'
+    assert hits[0]['is_error'] == False
+    assert hits[0]['extension'] == u'/products/theproduct'
+    assert hits[0]['is_download'] == False
+    assert hits[0]['referrer'] == u'"http://example.com/Search/SearchResults.pg?informationRecipient.languageCode.c=en"'
+    assert hits[0]['args'] == {}
+    assert hits[0]['generation_time_milli'] == 109
+    assert hits[0]['host'] == 'foo'
+    assert hits[0]['filename'] == 'logs/iis_custom.log'
+    assert hits[0]['is_redirect'] == False
+    assert hits[0]['date'] == datetime.datetime(2012, 8, 15, 17, 0)
+    assert hits[0]['lineno'] == 4
+    assert hits[0]['ip'] == u'70.95.0.0'
+    assert hits[0]['query_string'] == ''
+    assert hits[0]['path'] == u'/Products/theProduct'
+    assert hits[0]['is_robot'] == False
+    assert hits[0]['full_path'] == u'/Products/theProduct'
+    assert hits[0]['user_agent'] == u'Mozilla/5.0 (Linux; Android 4.4.4; SM-G900V Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36'
+
+    assert hits[1]['status'] == u'301'
+    assert hits[1]['is_error'] == False
+    assert hits[1]['extension'] == u'/topic/hw43061'
+    assert hits[1]['is_download'] == False
+    assert hits[1]['referrer'] == ''
+    assert hits[1]['args'] == {}
+    assert hits[1]['generation_time_milli'] == 0
+    assert hits[1]['host'] == 'foo'
+    assert hits[1]['filename'] == 'logs/iis_custom.log'
+    assert hits[1]['is_redirect'] == True
+    assert hits[1]['date'] == datetime.datetime(2012, 8, 15, 17, 0)
+    assert hits[1]['lineno'] == 5
+    assert hits[1]['ip'] == '70.95.32.0'
+    assert hits[1]['query_string'] == ''
+    assert hits[1]['path'] == u'/Topic/hw43061'
+    assert hits[1]['is_robot'] == False
+    assert hits[1]['full_path'] == u'/Topic/hw43061'
+    assert hits[1]['user_agent'] == u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36'
+
+    assert hits[2]['status'] == u'404'
+    assert hits[2]['is_error'] == True
+    assert hits[2]['extension'] == u'/hello/world/6,681965'
+    assert hits[2]['is_download'] == False
+    assert hits[2]['referrer'] == ''
+    assert hits[2]['args'] == {}
+    assert hits[2]['generation_time_milli'] == 359
+    assert hits[2]['host'] == 'foo'
+    assert hits[2]['filename'] == 'logs/iis_custom.log'
+    assert hits[2]['is_redirect'] == False
+    assert hits[2]['date'] == datetime.datetime(2012, 8, 15, 17, 0)
+    assert hits[2]['lineno'] == 6
+    assert hits[2]['ip'] == u'173.5.0.0'
+    assert hits[2]['query_string'] == ''
+    assert hits[2]['path'] == u'/hello/world/6,681965'
+    assert hits[2]['is_robot'] == False
+    assert hits[2]['full_path'] == u'/hello/world/6,681965'
+    assert hits[2]['user_agent'] == u'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36'
+
+def test_netscaler_parsing():
+    """test parsing of netscaler logs (which use extended W3C log format)"""
+
+    file_ = 'logs/netscaler.log'
+
+    # have to override previous globals override for this test
+    import_logs.config.options.custom_w3c_fields = {}
+    Recorder.recorders = []
+    import_logs.parser = import_logs.Parser()
+    import_logs.config.format = None
+    import_logs.config.options.enable_http_redirects = True
+    import_logs.config.options.enable_http_errors = True
+    import_logs.config.options.replay_tracking = False
+    import_logs.config.options.w3c_time_taken_in_secs = True
+    import_logs.parser.parse(file_)
+
+    hits = [hit.__dict__ for hit in Recorder.recorders]
+
+    assert hits[0]['status'] == u'302'
+    assert hits[0]['userid'] == None
+    assert hits[0]['is_error'] == False
+    assert hits[0]['extension'] == u'jsp'
+    assert hits[0]['is_download'] == False
+    assert hits[0]['referrer'] == ''
+    assert hits[0]['args'] == {}
+    assert hits[0]['generation_time_milli'] == 1000
+    assert hits[0]['host'] == 'foo'
+    assert hits[0]['filename'] == 'logs/netscaler.log'
+    assert hits[0]['is_redirect'] == True
+    assert hits[0]['date'] == datetime.datetime(2012, 8, 16, 11, 55, 13)
+    assert hits[0]['lineno'] == 4
+    assert hits[0]['ip'] == u'172.20.1.0'
+    assert hits[0]['query_string'] == ''
+    assert hits[0]['path'] == u'/Citrix/XenApp/Wan/auth/login.jsp'
+    assert hits[0]['is_robot'] == False
+    assert hits[0]['full_path'] == u'/Citrix/XenApp/Wan/auth/login.jsp'
+    assert hits[0]['user_agent'] == u'Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022)'
\ No newline at end of file
diff --git a/plugins/Actions/Actions/ActionSiteSearch.php b/plugins/Actions/Actions/ActionSiteSearch.php
index d19cfaa6fc71ac0942b926ed2e25c803d017e1ba..392e3777f8dc4a15675c9d74d0baac89125add9c 100644
--- a/plugins/Actions/Actions/ActionSiteSearch.php
+++ b/plugins/Actions/Actions/ActionSiteSearch.php
@@ -180,14 +180,19 @@ class ActionSiteSearch extends Action
         if (is_array($actionName)) {
             $actionName = reset($actionName);
         }
-        $actionName = trim(urldecode($actionName));
+
+        $actionName = PageUrl::urldecodeValidUtf8($actionName);
+        $actionName = trim($actionName);
         if (empty($actionName)) {
             return false;
         }
+
         if (is_array($categoryName)) {
             $categoryName = reset($categoryName);
         }
-        $categoryName = trim(urldecode($categoryName));
+        $categoryName = PageUrl::urldecodeValidUtf8($categoryName);
+        $categoryName = trim($categoryName);
+
         return array($url, $actionName, $categoryName, $count);
     }
 
diff --git a/plugins/Actions/ArchivingHelper.php b/plugins/Actions/ArchivingHelper.php
index e168f5d742530d4075d4388d7262164944e83d81..34873eb194a164bd173cdbc3293efe493d8b2cc0 100644
--- a/plugins/Actions/ArchivingHelper.php
+++ b/plugins/Actions/ArchivingHelper.php
@@ -198,9 +198,9 @@ class ArchivingHelper
             if (($idSubtable = $row->getIdSubDataTable()) !== null
                 || $id === DataTable::ID_SUMMARY_ROW
             ) {
-                if ($idSubtable !== null) {
-                    $subtable = Manager::getInstance()->getTable($idSubtable);
-                    self::deleteInvalidSummedColumnsFromDataTable($subtable);
+                $subTable = $row->getSubtable();
+                if ($subTable) {
+                    self::deleteInvalidSummedColumnsFromDataTable($subTable);
                 }
 
                 if ($row instanceof DataTableSummaryRow) {
diff --git a/plugins/CustomAlerts b/plugins/CustomAlerts
index 8ad0ac8638c27a93cb4bef80ecdd29b56876430b..2f10c8b496252d1527a47864cf39d18b359b7ae3 160000
--- a/plugins/CustomAlerts
+++ b/plugins/CustomAlerts
@@ -1 +1 @@
-Subproject commit 8ad0ac8638c27a93cb4bef80ecdd29b56876430b
+Subproject commit 2f10c8b496252d1527a47864cf39d18b359b7ae3
diff --git a/plugins/MultiSites/angularjs/site/site.controller.js b/plugins/MultiSites/angularjs/site/site.controller.js
index 7488b8330297a18338131deece6cd1d9499e59b5..2815ed4a777f785dc4b343b945c6d63218c11c8d 100644
--- a/plugins/MultiSites/angularjs/site/site.controller.js
+++ b/plugins/MultiSites/angularjs/site/site.controller.js
@@ -26,7 +26,21 @@
                 append = '&token_auth=' + token_auth;
             }
 
-            return piwik.piwik_url + '?module=MultiSites&action=getEvolutionGraph&period=' + $scope.period + '&date=' + $scope.dateSparkline + '&evolutionBy=' +$scope.metric + '&columns=' + $scope.metric + '&idSite=' + website.idsite + '&idsite=' + website.idsite + '&viewDataTable=sparkline' + append + '&colors=' + encodeURIComponent(JSON.stringify(piwik.getSparklineColors()));
+            var metric = $scope.metric;
+
+            switch ($scope.evolutionMetric) {
+                case 'visits_evolution':
+                    metric = 'nb_visits';
+                    break;
+                case 'pageviews_evolution':
+                    metric = 'nb_pageviews';
+                    break;
+                case 'revenue_evolution':
+                    metric = 'revenue';
+                    break;
+            }
+
+            return piwik.piwik_url + '?module=MultiSites&action=getEvolutionGraph&period=' + $scope.period + '&date=' + $scope.dateSparkline + '&evolutionBy=' + metric + '&columns=' + metric + '&idSite=' + website.idsite + '&idsite=' + website.idsite + '&viewDataTable=sparkline' + append + '&colors=' + encodeURIComponent(JSON.stringify(piwik.getSparklineColors()));
         }
     }
 })();
diff --git a/plugins/QueuedTracking b/plugins/QueuedTracking
index 657d46244b3b8345250f474e49a6af84f918a3de..8a04e7aee9cfc2f0c74c98e9c4ae84457e7e33d6 160000
--- a/plugins/QueuedTracking
+++ b/plugins/QueuedTracking
@@ -1 +1 @@
-Subproject commit 657d46244b3b8345250f474e49a6af84f918a3de
+Subproject commit 8a04e7aee9cfc2f0c74c98e9c4ae84457e7e33d6
diff --git a/plugins/TestRunner/Commands/TestsRun.php b/plugins/TestRunner/Commands/TestsRun.php
index 0aaef900496921308b1e2836215843646c583cd4..e7b02512b39a094f04034b677efcbecb4078afa5 100644
--- a/plugins/TestRunner/Commands/TestsRun.php
+++ b/plugins/TestRunner/Commands/TestsRun.php
@@ -47,7 +47,11 @@ class TestsRun extends ConsoleCommand
         $command = '../../vendor/phpunit/phpunit/phpunit';
 
         if (!$this->isCoverageEnabled($options) && $this->isXdebugLoaded()) {
-            $output->writeln('<comment>Did you know? You can run tests faster by disabling xdebug</comment>');
+            $message = 'Did you know? You can run tests faster by disabling xdebug';
+            if($this->isXdebugCodeCoverageEnabled()) {
+                $message .= ' (if you need xdebug, speed up tests by setting xdebug.coverage_enable=0)</comment>';
+            }
+            $output->writeln('<comment>' . $message .'</comment>');
         }
 
         // force xdebug usage for coverage options
@@ -255,6 +259,11 @@ class TestsRun extends ConsoleCommand
         return extension_loaded('xdebug');
     }
 
+    private function isXdebugCodeCoverageEnabled()
+    {
+        return (bool)ini_get('xdebug.coverage_enable');
+    }
+
     private function fixPathToTestFileOrDirectory($testFile)
     {
         if ('/' !== substr($testFile, 0, 1)) {
diff --git a/plugins/TestRunner/templates/travis.yml.twig b/plugins/TestRunner/templates/travis.yml.twig
index 1972feb6c82eea7b6ba3e42dcf2dc76e47e6acef..c7faa74372508f64ee1cfd7525bf5bb893a2488b 100644
--- a/plugins/TestRunner/templates/travis.yml.twig
+++ b/plugins/TestRunner/templates/travis.yml.twig
@@ -146,8 +146,6 @@ before_script:
   # configure mysql
   - mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'" # Travis default
 
-  # Uncomment to enable sql_mode STRICT_TRANS_TABLES (new default in Mysql 5.6)
-  - mysql -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION'"
   - mysql -e "SELECT @@sql_mode;"
   - mysql -e "SHOW GLOBAL VARIABLES;"
 {% if pluginName is empty %}
diff --git a/plugins/Transitions/API.php b/plugins/Transitions/API.php
index 44a39fdcf52a03f28acc42a1f19e23fc470e48ea..7092fee8f89318e7701caadefb6a0c48ecee4335 100644
--- a/plugins/Transitions/API.php
+++ b/plugins/Transitions/API.php
@@ -523,8 +523,8 @@ class API extends \Piwik\Plugin\API
             if ($visits) {
                 // load details (i.e. subtables)
                 $details = array();
-                if ($idSubTable = $row->getIdSubDataTable()) {
-                    $subTable = Manager::getInstance()->getTable($idSubTable);
+                $subTable = $row->getSubtable();
+                if ($subTable) {
                     foreach ($subTable->getRows() as $subRow) {
                         $details[] = array(
                             'label'     => $subRow->getColumn('label'),
diff --git a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php
index e72708a11d7438589afdc85acdef08ea6fd4b889..830d22778cdcc505b297d94ea185e12aa80cc935 100644
--- a/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php
+++ b/tests/PHPUnit/Fixtures/ManySitesImportedLogs.php
@@ -27,6 +27,8 @@ class ManySitesImportedLogs extends Fixture
     public $segments = null; // should be array mapping segment name => segment definition
 
     public $addSegments = false;
+    public $includeIisWithCustom = false;
+    public $includeNetscaler = false;
 
     public static function createAccessInstance()
     {
@@ -111,6 +113,14 @@ class ManySitesImportedLogs extends Fixture
         $this->logVisitsWithAllEnabled();
         $this->replayLogFile();
         $this->logCustomFormat();
+
+        if ($this->includeIisWithCustom) {
+            $this->logIisWithCustomFormat();
+        }
+
+        if ($this->includeNetscaler) {
+            $this->logNetscaler();
+        }
     }
 
     private function setupSegments()
@@ -229,4 +239,32 @@ class ManySitesImportedLogs extends Fixture
 
         self::executeLogImporter($logFile, $opts);
     }
+
+    private function logIisWithCustomFormat()
+    {
+        $logFile = PIWIK_INCLUDE_PATH . '/tests/resources/access-logs/fake_logs_custom_iis.log';
+
+        $opts = array('--idsite'           => $this->idSite,
+                      '--token-auth'       => self::getTokenAuth(),
+                      '--w3c-map-field'    => array('date-local=date', 'time-local=time', 'cs(Host)=cs-host', 'TimeTakenMS=time-taken'),
+                      '--enable-http-errors'        => false,
+                      '--enable-http-redirects'     => false);
+
+        self::executeLogImporter($logFile, $opts);
+    }
+
+    private function logNetscaler()
+    {
+        $logFile = PIWIK_INCLUDE_PATH . '/tests/resources/access-logs/fake_logs_netscaler.log';
+
+        $opts = array('--idsite'                    => $this->idSite,
+                      '--token-auth'                => self::getTokenAuth(),
+                      '--w3c-map-field'             => array(),
+                      '--enable-http-redirects'     => false);
+
+        $output = self::executeLogImporter($logFile, $opts);
+
+        // make sure warning about --w3c-time-taken-secs appears in importer output
+        self::assertContains("WARNING: netscaler log file being parsed without --w3c-time-taken-secs option.", implode("\n", $output));
+    }
 }
\ No newline at end of file
diff --git a/tests/PHPUnit/Framework/Fixture.php b/tests/PHPUnit/Framework/Fixture.php
index 693b76e2804a037d328b21fd2f67c0f0c9c3f6e5..a2d6a6327a819ad67dd9f186d933debd74fa7a4e 100644
--- a/tests/PHPUnit/Framework/Fixture.php
+++ b/tests/PHPUnit/Framework/Fixture.php
@@ -758,12 +758,18 @@ class Fixture extends \PHPUnit_Framework_Assert
             . '--url="' . self::getRootUrl() . 'tests/PHPUnit/proxy/" ' # proxy so that piwik uses test config files
         ;
 
-        foreach ($options as $name => $value) {
-            $cmd .= $name;
-            if ($value !== false) {
-                $cmd .= '="' . $value . '"';
+        foreach ($options as $name => $values) {
+            if (!is_array($values)) {
+                $values = array($values);
+            }
+
+            foreach ($values as $value) {
+                $cmd .= $name;
+                if ($value !== false) {
+                    $cmd .= '="' . $value . '"';
+                }
+                $cmd .= ' ';
             }
-            $cmd .= ' ';
         }
 
         $cmd .= '"' . $logFile . '" 2>&1';
diff --git a/tests/PHPUnit/Framework/TestRequest/Response.php b/tests/PHPUnit/Framework/TestRequest/Response.php
index 3d0b1622d42622ad276aa60561efb8669456300e..676c859b81579d72393e5667812fb86c2dc5c37c 100644
--- a/tests/PHPUnit/Framework/TestRequest/Response.php
+++ b/tests/PHPUnit/Framework/TestRequest/Response.php
@@ -161,6 +161,7 @@ class Response
             'goalTimePretty',
             'serverTimePretty',
             'visitServerHour',
+            'timestamp',
             'date',
             'prettyDate',
             'serverDateTimePrettyFirstAction'
diff --git a/tests/PHPUnit/System/ImportLogsTest.php b/tests/PHPUnit/System/ImportLogsTest.php
index 44c6b7b0b9c137d7b33c5fca26e8f8ae1322b213..b13317b68fc8c1a750ead36465cf7489bae0510c 100755
--- a/tests/PHPUnit/System/ImportLogsTest.php
+++ b/tests/PHPUnit/System/ImportLogsTest.php
@@ -102,4 +102,6 @@ class ImportLogsTest extends SystemTestCase
     }
 }
 
-ImportLogsTest::$fixture = new ManySitesImportedLogs();
\ No newline at end of file
+ImportLogsTest::$fixture = new ManySitesImportedLogs();
+ImportLogsTest::$fixture->includeIisWithCustom = true;
+ImportLogsTest::$fixture->includeNetscaler = true;
\ No newline at end of file
diff --git a/tests/PHPUnit/System/PrivacyManagerTest.php b/tests/PHPUnit/System/PrivacyManagerTest.php
index 18b197a4102eb215279cd01ad4d5110f8a86f57e..0d99d0816d3eded22b790ff012469961dfb08c32 100644
--- a/tests/PHPUnit/System/PrivacyManagerTest.php
+++ b/tests/PHPUnit/System/PrivacyManagerTest.php
@@ -374,7 +374,7 @@ class PrivacyManagerTest extends SystemTestCase
 
         // perform checks
         $this->checkLogDataPurged();
-        $this->_checkReportsAndMetricsPurged($janBlobsRemaining = 5, $janNumericRemaining = 68); // 5 blobs for 5 days
+        $this->_checkReportsAndMetricsPurged($janBlobsRemaining = 5, $janNumericRemaining = 69); // 5 blobs for 5 days
     }
 
     /**
@@ -574,7 +574,7 @@ class PrivacyManagerTest extends SystemTestCase
 
         // perform checks
         $this->checkLogDataPurged();
-        $this->_checkReportsAndMetricsPurged($janBlobsRemaining = 6, $janNumericRemaining = 70); // 1 segmented blob + 5 day blobs
+        $this->_checkReportsAndMetricsPurged($janBlobsRemaining = 6, $janNumericRemaining = 71); // 1 segmented blob + 5 day blobs
     }
 
     // --- utility functions follow ---
@@ -720,15 +720,15 @@ class PrivacyManagerTest extends SystemTestCase
 
         // one metric for jan & one for feb
         Db::query(sprintf($sql, Common::prefixTable($archiveTables['numeric'][0])),
-            array(self::GARBAGE_FIELD, $janDate1, $janDate1, $janDate1, 1, 100));
+            array(self::GARBAGE_FIELD, $janDate1, $janDate1, 1, $janDate1, 100));
         Db::query(sprintf($sql, Common::prefixTable($archiveTables['numeric'][1])),
-            array(self::GARBAGE_FIELD, $febDate1, $febDate1, $febDate1, 1, 200));
+            array(self::GARBAGE_FIELD, $febDate1, $febDate1, 1, $febDate1, 200));
 
         // add garbage reports
         Db::query(sprintf($sql, Common::prefixTable($archiveTables['blob'][0])),
-            array(self::GARBAGE_FIELD, $janDate1, $janDate1, $janDate1, 10, 'blobval'));
+            array(self::GARBAGE_FIELD, $janDate1, $janDate1, 10, $janDate1, 'blobval'));
         Db::query(sprintf($sql, Common::prefixTable($archiveTables['blob'][1])),
-            array(self::GARBAGE_FIELD, $febDate1, $febDate1, $febDate1, 20, 'blobval'));
+            array(self::GARBAGE_FIELD, $febDate1, $febDate1, 20, $febDate1, 'blobval'));
     }
 
     protected function _checkNoDataChanges()
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_month.xml
index 77e2b6491835297b7eb1a9a68914273d2c611640..b979b765d88dd5de3339ebdcd139c34823f1be64 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_month.xml
@@ -2,16 +2,21 @@
 <result>
 	<row>
 		<label>301</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
 		<sum_time_spent>180</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>182</entry_sum_visit_length>
 		<entry_bounce_count>0</entry_bounce_count>
-		<avg_time_on_page>180</avg_time_on_page>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>90</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
-		<exit_rate>0%</exit_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label> URL = http://piwik.net/moved-permanently</label>
@@ -32,23 +37,51 @@
 	</row>
 	<row>
 		<label>404</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
-		<entry_nb_visits>1</entry_nb_visits>
-		<entry_nb_actions>1</entry_nb_actions>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>1</entry_bounce_count>
-		<exit_nb_visits>1</exit_nb_visits>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
 		<subtable>
+			<row>
+				<label> URL = http://piwik.net/hello/world/6,681965</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+			</row>
 			<row>
 				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+				<min_time_generation />
+				<max_time_generation />
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -60,6 +93,44 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0</avg_time_generation>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>302</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>240</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>240</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
 	</row>
@@ -68,6 +139,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -76,6 +150,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label> URL = http://piwik.net/to-an-error</label>
@@ -101,6 +176,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -112,12 +190,16 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 	</row>
 	<row>
 		<label> Piwik Forums</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -129,5 +211,6 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_range.xml
index 2d81bb9f1952ed50ffb4d556dcac944b8092cfae..81d66a066b9a3f8debabe34c7b789d42609282f0 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageTitles_range.xml
@@ -22,30 +22,9 @@
 		<avg_time_generation>0.177</avg_time_generation>
 	</row>
 	<row>
-		<label> Log Analytics - Analytics - Piwik</label>
+		<label>301</label>
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
-		<sum_time_spent>0</sum_time_spent>
-		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
-		<min_time_generation>0.145</min_time_generation>
-		<max_time_generation>0.145</max_time_generation>
-		<entry_nb_visits>2</entry_nb_visits>
-		<entry_nb_actions>2</entry_nb_actions>
-		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>2</entry_bounce_count>
-		<exit_nb_visits>2</exit_nb_visits>
-		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
-		<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
-		<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
-		<avg_time_on_page>0</avg_time_on_page>
-		<bounce_rate>100%</bounce_rate>
-		<exit_rate>100%</exit_rate>
-		<avg_time_generation>0.145</avg_time_generation>
-	</row>
-	<row>
-		<label>301</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
 		<sum_time_spent>180</sum_time_spent>
 		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 		<min_time_generation />
@@ -54,9 +33,10 @@
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>182</entry_sum_visit_length>
 		<entry_bounce_count>0</entry_bounce_count>
-		<avg_time_on_page>180</avg_time_on_page>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>90</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
-		<exit_rate>0%</exit_rate>
+		<exit_rate>50%</exit_rate>
 		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
@@ -78,27 +58,51 @@
 	</row>
 	<row>
 		<label>404</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
-		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
-		<min_time_generation />
-		<max_time_generation>0</max_time_generation>
-		<entry_nb_visits>1</entry_nb_visits>
-		<entry_nb_actions>1</entry_nb_actions>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>1</entry_bounce_count>
-		<exit_nb_visits>1</exit_nb_visits>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
-		<avg_time_generation>0</avg_time_generation>
+		<avg_time_generation>0.359</avg_time_generation>
 		<subtable>
+			<row>
+				<label> URL = http://piwik.net/hello/world/6,681965</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+			</row>
 			<row>
 				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+				<min_time_generation />
+				<max_time_generation />
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -110,6 +114,65 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0</avg_time_generation>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label> Log Analytics - Analytics - Piwik</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.145</min_time_generation>
+		<max_time_generation>0.145</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>0</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+		<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
+		<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.145</avg_time_generation>
+	</row>
+	<row>
+		<label>302</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>240</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>240</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
 	</row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml
index 8845a80655eae7ba734c6e965f1cca9f4c164cc9..6ae99318f04ceb69b903a9f26ed3bbdb661418b1 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_month.xml
@@ -5,6 +5,9 @@
 		<nb_visits>5</nb_visits>
 		<nb_hits>5</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>5</entry_nb_visits>
 		<entry_nb_actions>5</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -13,6 +16,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>category</label>
@@ -171,6 +175,9 @@
 		<nb_visits>4</nb_visits>
 		<nb_hits>4</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>4</entry_nb_visits>
 		<entry_nb_actions>4</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -179,6 +186,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>manage-websites</label>
@@ -273,6 +281,9 @@
 		<nb_visits>4</nb_visits>
 		<nb_hits>4</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>4</entry_nb_visits>
 		<entry_nb_actions>4</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -281,6 +292,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -375,6 +387,9 @@
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -386,13 +401,245 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/</url>
 	</row>
+	<row>
+		<label>Citrix</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>120</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>XenApp</label>
+				<nb_visits>2</nb_visits>
+				<nb_hits>2</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>120</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>50%</exit_rate>
+				<subtable>
+					<row>
+						<label>Wan</label>
+						<nb_visits>2</nb_visits>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>240</sum_time_spent>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>2</entry_nb_actions>
+						<entry_sum_visit_length>242</entry_sum_visit_length>
+						<entry_bounce_count>0</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>120</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>50%</exit_rate>
+						<subtable>
+							<row>
+								<label>auth</label>
+								<nb_visits>2</nb_visits>
+								<nb_hits>2</nb_hits>
+								<sum_time_spent>240</sum_time_spent>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>2</entry_nb_actions>
+								<entry_sum_visit_length>242</entry_sum_visit_length>
+								<entry_bounce_count>0</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>120</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>50%</exit_rate>
+								<subtable>
+									<row>
+										<label>/login.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>240</sum_time_spent>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>2</entry_nb_actions>
+										<entry_sum_visit_length>242</entry_sum_visit_length>
+										<entry_bounce_count>0</entry_bounce_count>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<avg_time_on_page>240</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>0%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>hello</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>1</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label>from</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>1</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>another</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>1</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<subtable>
+							<row>
+								<label>world</label>
+								<nb_visits>1</nb_visits>
+								<nb_hits>1</nb_hits>
+								<sum_time_spent>0</sum_time_spent>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+								<min_time_generation>0.359</min_time_generation>
+								<max_time_generation>0.359</max_time_generation>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>1</entry_nb_actions>
+								<entry_sum_visit_length>1</entry_sum_visit_length>
+								<entry_bounce_count>1</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>0</avg_time_on_page>
+								<bounce_rate>100%</bounce_rate>
+								<exit_rate>100%</exit_rate>
+								<avg_time_generation>0.359</avg_time_generation>
+								<subtable>
+									<row>
+										<label>/6,681965</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+										<min_time_generation>0.359</min_time_generation>
+										<max_time_generation>0.359</max_time_generation>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>1</entry_nb_actions>
+										<entry_sum_visit_length>1</entry_sum_visit_length>
+										<entry_bounce_count>1</entry_bounce_count>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>100%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<avg_time_generation>0.359</avg_time_generation>
+										<url>http://piwik.net/hello/from/another/world/6,681965</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+			<row>
+				<label>world</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>/6,681965</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>0</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+						<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<url>http://piwik.net/hello/world/6,681965</url>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>/index.htm</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -404,6 +651,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://example.org/index.htm</url>
 	</row>
 	<row>
@@ -411,6 +659,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>180</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>182</entry_sum_visit_length>
@@ -420,6 +671,7 @@
 		<avg_time_on_page>180</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/moved-permanently</url>
 	</row>
 	<row>
@@ -427,6 +679,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -438,6 +693,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url>
 	</row>
 	<row>
@@ -445,6 +701,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -456,6 +715,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/to-an-error</url>
 	</row>
 	<row>
@@ -463,6 +723,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -471,6 +734,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>counter</label>
@@ -513,6 +777,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -521,6 +788,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -547,6 +815,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -555,6 +826,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -581,6 +853,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -589,6 +864,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -610,11 +886,53 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Products</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.109</min_time_generation>
+		<max_time_generation>0.109</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>2</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.109</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/theProduct</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.109</min_time_generation>
+				<max_time_generation>0.109</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>2</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.109</avg_time_generation>
+				<url>http://piwik.net/Products/theProduct</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>this</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -623,6 +941,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>is</label>
@@ -777,6 +1096,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -785,6 +1107,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml
index b7cbdc125bd73a263cb736382a5f155057cccf6a..cce26eeec72765adb4285292177ce0cf99b691c8 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getEntryPageUrls_range.xml
@@ -646,6 +646,90 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Citrix</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>120</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>XenApp</label>
+				<nb_visits>2</nb_visits>
+				<nb_hits>2</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>120</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>50%</exit_rate>
+				<subtable>
+					<row>
+						<label>Wan</label>
+						<nb_visits>2</nb_visits>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>240</sum_time_spent>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>2</entry_nb_actions>
+						<entry_sum_visit_length>242</entry_sum_visit_length>
+						<entry_bounce_count>0</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>120</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>50%</exit_rate>
+						<subtable>
+							<row>
+								<label>auth</label>
+								<nb_visits>2</nb_visits>
+								<nb_hits>2</nb_hits>
+								<sum_time_spent>240</sum_time_spent>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>2</entry_nb_actions>
+								<entry_sum_visit_length>242</entry_sum_visit_length>
+								<entry_bounce_count>0</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>120</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>50%</exit_rate>
+								<subtable>
+									<row>
+										<label>/login.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>240</sum_time_spent>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>2</entry_nb_actions>
+										<entry_sum_visit_length>242</entry_sum_visit_length>
+										<entry_bounce_count>0</entry_bounce_count>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<avg_time_on_page>240</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>0%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>download</label>
 		<nb_visits>2</nb_visits>
@@ -700,6 +784,150 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>hello</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>1</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label>from</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>1</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>another</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>1</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<subtable>
+							<row>
+								<label>world</label>
+								<nb_visits>1</nb_visits>
+								<nb_hits>1</nb_hits>
+								<sum_time_spent>0</sum_time_spent>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+								<min_time_generation>0.359</min_time_generation>
+								<max_time_generation>0.359</max_time_generation>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>1</entry_nb_actions>
+								<entry_sum_visit_length>1</entry_sum_visit_length>
+								<entry_bounce_count>1</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>0</avg_time_on_page>
+								<bounce_rate>100%</bounce_rate>
+								<exit_rate>100%</exit_rate>
+								<avg_time_generation>0.359</avg_time_generation>
+								<subtable>
+									<row>
+										<label>/6,681965</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+										<min_time_generation>0.359</min_time_generation>
+										<max_time_generation>0.359</max_time_generation>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>1</entry_nb_actions>
+										<entry_sum_visit_length>1</entry_sum_visit_length>
+										<entry_bounce_count>1</entry_bounce_count>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>100%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<avg_time_generation>0.359</avg_time_generation>
+										<url>http://piwik.net/hello/from/another/world/6,681965</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+			<row>
+				<label>world</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>/6,681965</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>0</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+						<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<url>http://piwik.net/hello/world/6,681965</url>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>log-analytics</label>
 		<nb_visits>2</nb_visits>
@@ -999,6 +1227,45 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Products</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.109</min_time_generation>
+		<max_time_generation>0.109</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>2</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.109</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/theProduct</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.109</min_time_generation>
+				<max_time_generation>0.109</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>2</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.109</avg_time_generation>
+				<url>http://piwik.net/Products/theProduct</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>this</label>
 		<nb_visits>1</nb_visits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_month.xml
index f1b90a5e1d6590f0f2bdb0bbbd6434a70bdfa868..8789133564dac4a61c9da2e0bc5cd7cba23643fb 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_month.xml
@@ -1,17 +1,25 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
 	<row>
-		<label>307</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
-		<sum_time_spent>0</sum_time_spent>
+		<label>301</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>180</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>182</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
 		<exit_nb_visits>1</exit_nb_visits>
-		<avg_time_on_page>0</avg_time_on_page>
+		<avg_time_on_page>90</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
-		<exit_rate>100%</exit_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
-				<label> URL = http://piwik.net/temp-redirect</label>
+				<label> URL = http://piwik.net/Topic/hw43061</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
@@ -26,23 +34,51 @@
 	</row>
 	<row>
 		<label>404</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
-		<entry_nb_visits>1</entry_nb_visits>
-		<entry_nb_actions>1</entry_nb_actions>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>1</entry_bounce_count>
-		<exit_nb_visits>1</exit_nb_visits>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
 		<subtable>
+			<row>
+				<label> URL = http://piwik.net/hello/world/6,681965</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+			</row>
 			<row>
 				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+				<min_time_generation />
+				<max_time_generation />
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -54,6 +90,72 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0</avg_time_generation>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>302</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>240</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>240</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>307</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/temp-redirect</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
 	</row>
@@ -62,6 +164,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -70,6 +175,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label> URL = http://piwik.net/to-an-error</label>
@@ -95,6 +201,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -106,12 +215,16 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 	</row>
 	<row>
 		<label> Piwik Forums</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -123,5 +236,6 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_range.xml
index 867e27cd0da22e0b1448b491aeb399f0a1eff8e4..401a36b8355c22c3f8d8694510879c909c550387 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageTitles_range.xml
@@ -21,6 +21,100 @@
 		<exit_rate>50%</exit_rate>
 		<avg_time_generation>0.177</avg_time_generation>
 	</row>
+	<row>
+		<label>301</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>180</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>182</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>90</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/Topic/hw43061</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>404</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>0</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/hello/world/6,681965</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+			</row>
+			<row>
+				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+				<min_time_generation />
+				<max_time_generation />
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0</avg_time_generation>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label> Log Analytics - Analytics - Piwik</label>
 		<nb_visits>2</nb_visits>
@@ -43,66 +137,66 @@
 		<avg_time_generation>0.145</avg_time_generation>
 	</row>
 	<row>
-		<label>307</label>
+		<label>302</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
-		<sum_time_spent>0</sum_time_spent>
+		<sum_time_spent>240</sum_time_spent>
 		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 		<min_time_generation />
 		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
 		<exit_nb_visits>1</exit_nb_visits>
-		<avg_time_on_page>0</avg_time_on_page>
+		<avg_time_on_page>240</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
 		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
-				<label> URL = http://piwik.net/temp-redirect</label>
+				<label> URL = http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
-				<sum_time_spent>0</sum_time_spent>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
 				<exit_nb_visits>1</exit_nb_visits>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
 				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
-				<avg_time_on_page>0</avg_time_on_page>
+				<avg_time_on_page>240</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
 	</row>
 	<row>
-		<label>404</label>
+		<label>307</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
 		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 		<min_time_generation />
 		<max_time_generation>0</max_time_generation>
-		<entry_nb_visits>1</entry_nb_visits>
-		<entry_nb_actions>1</entry_nb_actions>
-		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>1</entry_bounce_count>
 		<exit_nb_visits>1</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
-		<bounce_rate>100%</bounce_rate>
+		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
 		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
-				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
+				<label> URL = http://piwik.net/temp-redirect</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
-				<entry_nb_visits>1</entry_nb_visits>
-				<entry_nb_actions>1</entry_nb_actions>
-				<entry_sum_visit_length>0</entry_sum_visit_length>
-				<entry_bounce_count>1</entry_bounce_count>
 				<exit_nb_visits>1</exit_nb_visits>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
-				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
 				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
-				<bounce_rate>100%</bounce_rate>
+				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml
index 28acca124218020bd3796fd88b46ec2e1538c067..f3ebc92964dd361358d43a0be56aa6d954ec2ded 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_month.xml
@@ -5,6 +5,9 @@
 		<nb_visits>5</nb_visits>
 		<nb_hits>5</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>5</entry_nb_visits>
 		<entry_nb_actions>5</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -13,6 +16,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>category</label>
@@ -171,6 +175,9 @@
 		<nb_visits>4</nb_visits>
 		<nb_hits>4</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>4</entry_nb_visits>
 		<entry_nb_actions>4</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -179,6 +186,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>manage-websites</label>
@@ -273,6 +281,9 @@
 		<nb_visits>4</nb_visits>
 		<nb_hits>4</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>4</entry_nb_visits>
 		<entry_nb_actions>4</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -281,6 +292,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -375,6 +387,9 @@
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -386,13 +401,242 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/</url>
 	</row>
+	<row>
+		<label>Citrix</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>120</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>XenApp</label>
+				<nb_visits>2</nb_visits>
+				<nb_hits>2</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>120</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>50%</exit_rate>
+				<subtable>
+					<row>
+						<label>Wan</label>
+						<nb_visits>2</nb_visits>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>240</sum_time_spent>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>2</entry_nb_actions>
+						<entry_sum_visit_length>242</entry_sum_visit_length>
+						<entry_bounce_count>0</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>120</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>50%</exit_rate>
+						<subtable>
+							<row>
+								<label>auth</label>
+								<nb_visits>2</nb_visits>
+								<nb_hits>2</nb_hits>
+								<sum_time_spent>240</sum_time_spent>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>2</entry_nb_actions>
+								<entry_sum_visit_length>242</entry_sum_visit_length>
+								<entry_bounce_count>0</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>120</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>50%</exit_rate>
+								<subtable>
+									<row>
+										<label>/silentDetection.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/silentDetection.jsp</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>hello</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>1</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label>from</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>1</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>another</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>1</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<subtable>
+							<row>
+								<label>world</label>
+								<nb_visits>1</nb_visits>
+								<nb_hits>1</nb_hits>
+								<sum_time_spent>0</sum_time_spent>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+								<min_time_generation>0.359</min_time_generation>
+								<max_time_generation>0.359</max_time_generation>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>1</entry_nb_actions>
+								<entry_sum_visit_length>1</entry_sum_visit_length>
+								<entry_bounce_count>1</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>0</avg_time_on_page>
+								<bounce_rate>100%</bounce_rate>
+								<exit_rate>100%</exit_rate>
+								<avg_time_generation>0.359</avg_time_generation>
+								<subtable>
+									<row>
+										<label>/6,681965</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+										<min_time_generation>0.359</min_time_generation>
+										<max_time_generation>0.359</max_time_generation>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>1</entry_nb_actions>
+										<entry_sum_visit_length>1</entry_sum_visit_length>
+										<entry_bounce_count>1</entry_bounce_count>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>100%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<avg_time_generation>0.359</avg_time_generation>
+										<url>http://piwik.net/hello/from/another/world/6,681965</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+			<row>
+				<label>world</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>/6,681965</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>0</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+						<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<url>http://piwik.net/hello/world/6,681965</url>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>/index.htm</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -404,6 +648,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://example.org/index.htm</url>
 	</row>
 	<row>
@@ -411,6 +656,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -422,6 +670,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url>
 	</row>
 	<row>
@@ -429,12 +678,16 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<exit_nb_visits>1</exit_nb_visits>
 		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 		<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/temp-redirect</url>
 	</row>
 	<row>
@@ -442,6 +695,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -453,6 +709,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/to-an-error</url>
 	</row>
 	<row>
@@ -460,6 +717,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -468,6 +728,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>counter</label>
@@ -510,6 +771,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -518,6 +782,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -544,6 +809,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -552,6 +820,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -578,6 +847,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -586,6 +858,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -612,6 +885,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -620,6 +896,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>is</label>
@@ -769,11 +1046,43 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Topic</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/hw43061</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<url>http://piwik.net/Topic/hw43061</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>translations</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -782,6 +1091,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml
index 7721a10da115ff80a5f193526eb82773b2f7465a..63c3d594e0641f8630e1894f7f298828fb5dedbb 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getExitPageUrls_range.xml
@@ -646,6 +646,87 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Citrix</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>120</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>XenApp</label>
+				<nb_visits>2</nb_visits>
+				<nb_hits>2</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>120</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>50%</exit_rate>
+				<subtable>
+					<row>
+						<label>Wan</label>
+						<nb_visits>2</nb_visits>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>240</sum_time_spent>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>2</entry_nb_actions>
+						<entry_sum_visit_length>242</entry_sum_visit_length>
+						<entry_bounce_count>0</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>120</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>50%</exit_rate>
+						<subtable>
+							<row>
+								<label>auth</label>
+								<nb_visits>2</nb_visits>
+								<nb_hits>2</nb_hits>
+								<sum_time_spent>240</sum_time_spent>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>2</entry_nb_actions>
+								<entry_sum_visit_length>242</entry_sum_visit_length>
+								<entry_bounce_count>0</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>120</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>50%</exit_rate>
+								<subtable>
+									<row>
+										<label>/silentDetection.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/silentDetection.jsp</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>download</label>
 		<nb_visits>2</nb_visits>
@@ -700,6 +781,150 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>hello</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>1</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label>from</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>1</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>another</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>1</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<subtable>
+							<row>
+								<label>world</label>
+								<nb_visits>1</nb_visits>
+								<nb_hits>1</nb_hits>
+								<sum_time_spent>0</sum_time_spent>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+								<min_time_generation>0.359</min_time_generation>
+								<max_time_generation>0.359</max_time_generation>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>1</entry_nb_actions>
+								<entry_sum_visit_length>1</entry_sum_visit_length>
+								<entry_bounce_count>1</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>0</avg_time_on_page>
+								<bounce_rate>100%</bounce_rate>
+								<exit_rate>100%</exit_rate>
+								<avg_time_generation>0.359</avg_time_generation>
+								<subtable>
+									<row>
+										<label>/6,681965</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+										<min_time_generation>0.359</min_time_generation>
+										<max_time_generation>0.359</max_time_generation>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>1</entry_nb_actions>
+										<entry_sum_visit_length>1</entry_sum_visit_length>
+										<entry_bounce_count>1</entry_bounce_count>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>100%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<avg_time_generation>0.359</avg_time_generation>
+										<url>http://piwik.net/hello/from/another/world/6,681965</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+			<row>
+				<label>world</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>/6,681965</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>0</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+						<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<url>http://piwik.net/hello/world/6,681965</url>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>log-analytics</label>
 		<nb_visits>2</nb_visits>
@@ -1156,6 +1381,35 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Topic</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/hw43061</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<url>http://piwik.net/Topic/hw43061</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>translations</label>
 		<nb_visits>1</nb_visits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml
index 143229b5e7a2f8b22b4cc36c80e3f9014cd136da..7ecefada5550ab2cbd281d0f8738766448fbc7e7 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_month.xml
@@ -2,26 +2,35 @@
 <result>
 	<row>
 		<label>Page Name not defined</label>
-		<nb_visits>20</nb_visits>
-		<nb_hits>20</nb_hits>
+		<nb_visits>23</nb_visits>
+		<nb_hits>23</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
-		<sum_daily_nb_uniq_visitors>20</sum_daily_nb_uniq_visitors>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<min_time_generation>0.109</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<sum_daily_nb_uniq_visitors>23</sum_daily_nb_uniq_visitors>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.234</avg_time_generation>
 	</row>
 	<row>
 		<label>301</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
 		<sum_time_spent>180</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>182</entry_sum_visit_length>
 		<entry_bounce_count>0</entry_bounce_count>
-		<avg_time_on_page>180</avg_time_on_page>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>90</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
-		<exit_rate>0%</exit_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label> URL = http://piwik.net/moved-permanently</label>
@@ -38,20 +47,8 @@
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
 			</row>
-		</subtable>
-	</row>
-	<row>
-		<label>307</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
-		<sum_time_spent>0</sum_time_spent>
-		<exit_nb_visits>1</exit_nb_visits>
-		<avg_time_on_page>0</avg_time_on_page>
-		<bounce_rate>0%</bounce_rate>
-		<exit_rate>100%</exit_rate>
-		<subtable>
 			<row>
-				<label> URL = http://piwik.net/temp-redirect</label>
+				<label> URL = http://piwik.net/Topic/hw43061</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
@@ -66,23 +63,51 @@
 	</row>
 	<row>
 		<label>404</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
-		<entry_nb_visits>1</entry_nb_visits>
-		<entry_nb_actions>1</entry_nb_actions>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>1</entry_bounce_count>
-		<exit_nb_visits>1</exit_nb_visits>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
 		<subtable>
+			<row>
+				<label> URL = http://piwik.net/hello/world/6,681965</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+			</row>
 			<row>
 				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+				<min_time_generation />
+				<max_time_generation />
 				<entry_nb_visits>1</entry_nb_visits>
 				<entry_nb_actions>1</entry_nb_actions>
 				<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -94,6 +119,72 @@
 				<avg_time_on_page>0</avg_time_on_page>
 				<bounce_rate>100%</bounce_rate>
 				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0</avg_time_generation>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>302</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>240</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>240</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>307</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/temp-redirect</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
 	</row>
@@ -102,6 +193,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -110,6 +204,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label> URL = http://piwik.net/to-an-error</label>
@@ -135,6 +230,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -146,12 +244,16 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 	</row>
 	<row>
 		<label> Piwik Forums</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -163,5 +265,6 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml
index 509723308ff9503b9c64812f0aebd946f243bf95..690c2e28a00a2e64ec2d1a17f3773afdf387daab 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageTitles_range.xml
@@ -2,17 +2,17 @@
 <result>
 	<row>
 		<label>Page Name not defined</label>
-		<nb_visits>21</nb_visits>
-		<nb_hits>30</nb_hits>
+		<nb_visits>24</nb_visits>
+		<nb_hits>33</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
-		<nb_hits_with_time_generation>10</nb_hits_with_time_generation>
+		<nb_hits_with_time_generation>12</nb_hits_with_time_generation>
 		<min_time_generation>0.023</min_time_generation>
 		<max_time_generation>1.324</max_time_generation>
-		<sum_daily_nb_uniq_visitors>21</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_uniq_visitors>24</sum_daily_nb_uniq_visitors>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
-		<avg_time_generation>0.387</avg_time_generation>
+		<avg_time_generation>0.361</avg_time_generation>
 	</row>
 	<row>
 		<label> Liberate Web Analytics - Analytics - Piwik</label>
@@ -36,30 +36,9 @@
 		<avg_time_generation>0.177</avg_time_generation>
 	</row>
 	<row>
-		<label> Log Analytics - Analytics - Piwik</label>
+		<label>301</label>
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
-		<sum_time_spent>0</sum_time_spent>
-		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
-		<min_time_generation>0.145</min_time_generation>
-		<max_time_generation>0.145</max_time_generation>
-		<entry_nb_visits>2</entry_nb_visits>
-		<entry_nb_actions>2</entry_nb_actions>
-		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>2</entry_bounce_count>
-		<exit_nb_visits>2</exit_nb_visits>
-		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
-		<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
-		<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
-		<avg_time_on_page>0</avg_time_on_page>
-		<bounce_rate>100%</bounce_rate>
-		<exit_rate>100%</exit_rate>
-		<avg_time_generation>0.145</avg_time_generation>
-	</row>
-	<row>
-		<label>301</label>
-		<nb_visits>1</nb_visits>
-		<nb_hits>1</nb_hits>
 		<sum_time_spent>180</sum_time_spent>
 		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 		<min_time_generation />
@@ -68,9 +47,10 @@
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>182</entry_sum_visit_length>
 		<entry_bounce_count>0</entry_bounce_count>
-		<avg_time_on_page>180</avg_time_on_page>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>90</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
-		<exit_rate>0%</exit_rate>
+		<exit_rate>50%</exit_rate>
 		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
@@ -88,69 +68,164 @@
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>0%</exit_rate>
 			</row>
+			<row>
+				<label> URL = http://piwik.net/Topic/hw43061</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+			</row>
 		</subtable>
 	</row>
 	<row>
-		<label>307</label>
+		<label>404</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>0</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label> URL = http://piwik.net/hello/world/6,681965</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+			</row>
+			<row>
+				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+				<min_time_generation />
+				<max_time_generation />
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0</avg_time_generation>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label> Log Analytics - Analytics - Piwik</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.145</min_time_generation>
+		<max_time_generation>0.145</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>0</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+		<sum_daily_entry_nb_uniq_visitors>2</sum_daily_entry_nb_uniq_visitors>
+		<sum_daily_exit_nb_uniq_visitors>2</sum_daily_exit_nb_uniq_visitors>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.145</avg_time_generation>
+	</row>
+	<row>
+		<label>302</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
-		<sum_time_spent>0</sum_time_spent>
+		<sum_time_spent>240</sum_time_spent>
 		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 		<min_time_generation />
 		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
 		<exit_nb_visits>1</exit_nb_visits>
-		<avg_time_on_page>0</avg_time_on_page>
+		<avg_time_on_page>240</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
 		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
-				<label> URL = http://piwik.net/temp-redirect</label>
+				<label> URL = http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
-				<sum_time_spent>0</sum_time_spent>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
 				<exit_nb_visits>1</exit_nb_visits>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
 				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
-				<avg_time_on_page>0</avg_time_on_page>
+				<avg_time_on_page>240</avg_time_on_page>
 				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
 	</row>
 	<row>
-		<label>404</label>
+		<label>307</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
 		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
 		<min_time_generation />
 		<max_time_generation>0</max_time_generation>
-		<entry_nb_visits>1</entry_nb_visits>
-		<entry_nb_actions>1</entry_nb_actions>
-		<entry_sum_visit_length>0</entry_sum_visit_length>
-		<entry_bounce_count>1</entry_bounce_count>
 		<exit_nb_visits>1</exit_nb_visits>
 		<avg_time_on_page>0</avg_time_on_page>
-		<bounce_rate>100%</bounce_rate>
+		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
 		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
-				<label> URL = http://piwik.net/this/is/not/the/page/i/am/looking/for/</label>
+				<label> URL = http://piwik.net/temp-redirect</label>
 				<nb_visits>1</nb_visits>
 				<nb_hits>1</nb_hits>
 				<sum_time_spent>0</sum_time_spent>
-				<entry_nb_visits>1</entry_nb_visits>
-				<entry_nb_actions>1</entry_nb_actions>
-				<entry_sum_visit_length>0</entry_sum_visit_length>
-				<entry_bounce_count>1</entry_bounce_count>
 				<exit_nb_visits>1</exit_nb_visits>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
-				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
 				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 				<avg_time_on_page>0</avg_time_on_page>
-				<bounce_rate>100%</bounce_rate>
+				<bounce_rate>0%</bounce_rate>
 				<exit_rate>100%</exit_rate>
 			</row>
 		</subtable>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml
index c3f7304c25412f79d905ea242569ab0160910c03..c7ae80a4540691bb43f674e84321d35909b00190 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_month.xml
@@ -5,6 +5,9 @@
 		<nb_visits>5</nb_visits>
 		<nb_hits>5</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>5</entry_nb_visits>
 		<entry_nb_actions>5</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -13,6 +16,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>category</label>
@@ -171,6 +175,9 @@
 		<nb_visits>4</nb_visits>
 		<nb_hits>4</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>4</entry_nb_visits>
 		<entry_nb_actions>4</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -179,6 +186,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>manage-websites</label>
@@ -273,6 +281,9 @@
 		<nb_visits>4</nb_visits>
 		<nb_hits>4</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>4</entry_nb_visits>
 		<entry_nb_actions>4</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -281,6 +292,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -375,6 +387,9 @@
 		<nb_visits>2</nb_visits>
 		<nb_hits>2</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>2</entry_nb_visits>
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -386,13 +401,258 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/</url>
 	</row>
+	<row>
+		<label>Citrix</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>120</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>XenApp</label>
+				<nb_visits>2</nb_visits>
+				<nb_hits>2</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>120</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>50%</exit_rate>
+				<subtable>
+					<row>
+						<label>Wan</label>
+						<nb_visits>2</nb_visits>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>240</sum_time_spent>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>2</entry_nb_actions>
+						<entry_sum_visit_length>242</entry_sum_visit_length>
+						<entry_bounce_count>0</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>120</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>50%</exit_rate>
+						<subtable>
+							<row>
+								<label>auth</label>
+								<nb_visits>2</nb_visits>
+								<nb_hits>2</nb_hits>
+								<sum_time_spent>240</sum_time_spent>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>2</entry_nb_actions>
+								<entry_sum_visit_length>242</entry_sum_visit_length>
+								<entry_bounce_count>0</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>120</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>50%</exit_rate>
+								<subtable>
+									<row>
+										<label>/login.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>240</sum_time_spent>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>2</entry_nb_actions>
+										<entry_sum_visit_length>242</entry_sum_visit_length>
+										<entry_bounce_count>0</entry_bounce_count>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<avg_time_on_page>240</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>0%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url>
+									</row>
+									<row>
+										<label>/silentDetection.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/silentDetection.jsp</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
+	<row>
+		<label>hello</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>1</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label>from</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>1</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>another</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>1</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<subtable>
+							<row>
+								<label>world</label>
+								<nb_visits>1</nb_visits>
+								<nb_hits>1</nb_hits>
+								<sum_time_spent>0</sum_time_spent>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+								<min_time_generation>0.359</min_time_generation>
+								<max_time_generation>0.359</max_time_generation>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>1</entry_nb_actions>
+								<entry_sum_visit_length>1</entry_sum_visit_length>
+								<entry_bounce_count>1</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>0</avg_time_on_page>
+								<bounce_rate>100%</bounce_rate>
+								<exit_rate>100%</exit_rate>
+								<avg_time_generation>0.359</avg_time_generation>
+								<subtable>
+									<row>
+										<label>/6,681965</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+										<min_time_generation>0.359</min_time_generation>
+										<max_time_generation>0.359</max_time_generation>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>1</entry_nb_actions>
+										<entry_sum_visit_length>1</entry_sum_visit_length>
+										<entry_bounce_count>1</entry_bounce_count>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>100%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<avg_time_generation>0.359</avg_time_generation>
+										<url>http://piwik.net/hello/from/another/world/6,681965</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+			<row>
+				<label>world</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>/6,681965</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>0</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+						<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<url>http://piwik.net/hello/world/6,681965</url>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>/index.htm</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -404,6 +664,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://example.org/index.htm</url>
 	</row>
 	<row>
@@ -411,6 +672,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>180</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>2</entry_nb_actions>
 		<entry_sum_visit_length>182</entry_sum_visit_length>
@@ -420,6 +684,7 @@
 		<avg_time_on_page>180</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/moved-permanently</url>
 	</row>
 	<row>
@@ -427,6 +692,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -438,6 +706,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://forum.piwik.org/register.php?0,approve=9a94a02145599</url>
 	</row>
 	<row>
@@ -445,12 +714,16 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<exit_nb_visits>1</exit_nb_visits>
 		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 		<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>0%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/temp-redirect</url>
 	</row>
 	<row>
@@ -458,6 +731,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation />
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -469,6 +745,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<url>http://piwik.net/to-an-error</url>
 	</row>
 	<row>
@@ -476,6 +753,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -484,6 +764,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>counter</label>
@@ -526,6 +807,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -534,6 +818,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -560,6 +845,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -568,6 +856,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -594,6 +883,9 @@
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -602,6 +894,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
@@ -623,11 +916,53 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Products</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.109</min_time_generation>
+		<max_time_generation>0.109</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>2</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.109</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/theProduct</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.109</min_time_generation>
+				<max_time_generation>0.109</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>2</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.109</avg_time_generation>
+				<url>http://piwik.net/Products/theProduct</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>this</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -636,6 +971,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>is</label>
@@ -785,11 +1121,43 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Topic</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/hw43061</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<url>http://piwik.net/Topic/hw43061</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>translations</label>
 		<nb_visits>1</nb_visits>
 		<nb_hits>1</nb_hits>
 		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
 		<entry_nb_visits>1</entry_nb_visits>
 		<entry_nb_actions>1</entry_nb_actions>
 		<entry_sum_visit_length>0</entry_sum_visit_length>
@@ -798,6 +1166,7 @@
 		<avg_time_on_page>0</avg_time_on_page>
 		<bounce_rate>100%</bounce_rate>
 		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
 		<subtable>
 			<row>
 				<label>/index</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml
index aaabfb8fc32ec1779c967c5b4fcc4bbce6cd0604..3434158d1fd0d782ac88d8adb350830f8f29512f 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.getPageUrls_range.xml
@@ -646,6 +646,103 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Citrix</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>240</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>242</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>120</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>50%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>XenApp</label>
+				<nb_visits>2</nb_visits>
+				<nb_hits>2</nb_hits>
+				<sum_time_spent>240</sum_time_spent>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>242</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>120</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>50%</exit_rate>
+				<subtable>
+					<row>
+						<label>Wan</label>
+						<nb_visits>2</nb_visits>
+						<nb_hits>2</nb_hits>
+						<sum_time_spent>240</sum_time_spent>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>2</entry_nb_actions>
+						<entry_sum_visit_length>242</entry_sum_visit_length>
+						<entry_bounce_count>0</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>120</avg_time_on_page>
+						<bounce_rate>0%</bounce_rate>
+						<exit_rate>50%</exit_rate>
+						<subtable>
+							<row>
+								<label>auth</label>
+								<nb_visits>2</nb_visits>
+								<nb_hits>2</nb_hits>
+								<sum_time_spent>240</sum_time_spent>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>2</entry_nb_actions>
+								<entry_sum_visit_length>242</entry_sum_visit_length>
+								<entry_bounce_count>0</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>120</avg_time_on_page>
+								<bounce_rate>0%</bounce_rate>
+								<exit_rate>50%</exit_rate>
+								<subtable>
+									<row>
+										<label>/login.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>240</sum_time_spent>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>2</entry_nb_actions>
+										<entry_sum_visit_length>242</entry_sum_visit_length>
+										<entry_bounce_count>0</entry_bounce_count>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<avg_time_on_page>240</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>0%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url>
+									</row>
+									<row>
+										<label>/silentDetection.jsp</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>0%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<url>http://piwik.net/Citrix/XenApp/Wan/auth/silentDetection.jsp</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>download</label>
 		<nb_visits>2</nb_visits>
@@ -719,6 +816,150 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>hello</label>
+		<nb_visits>2</nb_visits>
+		<nb_hits>2</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>2</nb_hits_with_time_generation>
+		<min_time_generation>0.359</min_time_generation>
+		<max_time_generation>0.359</max_time_generation>
+		<entry_nb_visits>2</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>1</entry_sum_visit_length>
+		<entry_bounce_count>2</entry_bounce_count>
+		<exit_nb_visits>2</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>100%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0.359</avg_time_generation>
+		<subtable>
+			<row>
+				<label>from</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>1</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>another</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>1</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<subtable>
+							<row>
+								<label>world</label>
+								<nb_visits>1</nb_visits>
+								<nb_hits>1</nb_hits>
+								<sum_time_spent>0</sum_time_spent>
+								<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+								<min_time_generation>0.359</min_time_generation>
+								<max_time_generation>0.359</max_time_generation>
+								<entry_nb_visits>1</entry_nb_visits>
+								<entry_nb_actions>1</entry_nb_actions>
+								<entry_sum_visit_length>1</entry_sum_visit_length>
+								<entry_bounce_count>1</entry_bounce_count>
+								<exit_nb_visits>1</exit_nb_visits>
+								<avg_time_on_page>0</avg_time_on_page>
+								<bounce_rate>100%</bounce_rate>
+								<exit_rate>100%</exit_rate>
+								<avg_time_generation>0.359</avg_time_generation>
+								<subtable>
+									<row>
+										<label>/6,681965</label>
+										<nb_visits>1</nb_visits>
+										<nb_hits>1</nb_hits>
+										<sum_time_spent>0</sum_time_spent>
+										<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+										<min_time_generation>0.359</min_time_generation>
+										<max_time_generation>0.359</max_time_generation>
+										<entry_nb_visits>1</entry_nb_visits>
+										<entry_nb_actions>1</entry_nb_actions>
+										<entry_sum_visit_length>1</entry_sum_visit_length>
+										<entry_bounce_count>1</entry_bounce_count>
+										<exit_nb_visits>1</exit_nb_visits>
+										<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+										<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+										<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+										<avg_time_on_page>0</avg_time_on_page>
+										<bounce_rate>100%</bounce_rate>
+										<exit_rate>100%</exit_rate>
+										<avg_time_generation>0.359</avg_time_generation>
+										<url>http://piwik.net/hello/from/another/world/6,681965</url>
+									</row>
+								</subtable>
+							</row>
+						</subtable>
+					</row>
+				</subtable>
+			</row>
+			<row>
+				<label>world</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.359</min_time_generation>
+				<max_time_generation>0.359</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>1</entry_nb_actions>
+				<entry_sum_visit_length>0</entry_sum_visit_length>
+				<entry_bounce_count>1</entry_bounce_count>
+				<exit_nb_visits>1</exit_nb_visits>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>100%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<avg_time_generation>0.359</avg_time_generation>
+				<subtable>
+					<row>
+						<label>/6,681965</label>
+						<nb_visits>1</nb_visits>
+						<nb_hits>1</nb_hits>
+						<sum_time_spent>0</sum_time_spent>
+						<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+						<min_time_generation>0.359</min_time_generation>
+						<max_time_generation>0.359</max_time_generation>
+						<entry_nb_visits>1</entry_nb_visits>
+						<entry_nb_actions>1</entry_nb_actions>
+						<entry_sum_visit_length>0</entry_sum_visit_length>
+						<entry_bounce_count>1</entry_bounce_count>
+						<exit_nb_visits>1</exit_nb_visits>
+						<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+						<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+						<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+						<avg_time_on_page>0</avg_time_on_page>
+						<bounce_rate>100%</bounce_rate>
+						<exit_rate>100%</exit_rate>
+						<avg_time_generation>0.359</avg_time_generation>
+						<url>http://piwik.net/hello/world/6,681965</url>
+					</row>
+				</subtable>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>log-analytics</label>
 		<nb_visits>2</nb_visits>
@@ -1064,6 +1305,45 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Products</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+		<min_time_generation>0.109</min_time_generation>
+		<max_time_generation>0.109</max_time_generation>
+		<entry_nb_visits>1</entry_nb_visits>
+		<entry_nb_actions>2</entry_nb_actions>
+		<entry_sum_visit_length>2</entry_sum_visit_length>
+		<entry_bounce_count>0</entry_bounce_count>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>0%</exit_rate>
+		<avg_time_generation>0.109</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/theProduct</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<nb_hits_with_time_generation>1</nb_hits_with_time_generation>
+				<min_time_generation>0.109</min_time_generation>
+				<max_time_generation>0.109</max_time_generation>
+				<entry_nb_visits>1</entry_nb_visits>
+				<entry_nb_actions>2</entry_nb_actions>
+				<entry_sum_visit_length>2</entry_sum_visit_length>
+				<entry_bounce_count>0</entry_bounce_count>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_entry_nb_uniq_visitors>1</sum_daily_entry_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>0%</exit_rate>
+				<avg_time_generation>0.109</avg_time_generation>
+				<url>http://piwik.net/Products/theProduct</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>this</label>
 		<nb_visits>1</nb_visits>
@@ -1230,6 +1510,35 @@
 			</row>
 		</subtable>
 	</row>
+	<row>
+		<label>Topic</label>
+		<nb_visits>1</nb_visits>
+		<nb_hits>1</nb_hits>
+		<sum_time_spent>0</sum_time_spent>
+		<nb_hits_with_time_generation>0</nb_hits_with_time_generation>
+		<min_time_generation />
+		<max_time_generation>0</max_time_generation>
+		<exit_nb_visits>1</exit_nb_visits>
+		<avg_time_on_page>0</avg_time_on_page>
+		<bounce_rate>0%</bounce_rate>
+		<exit_rate>100%</exit_rate>
+		<avg_time_generation>0</avg_time_generation>
+		<subtable>
+			<row>
+				<label>/hw43061</label>
+				<nb_visits>1</nb_visits>
+				<nb_hits>1</nb_hits>
+				<sum_time_spent>0</sum_time_spent>
+				<exit_nb_visits>1</exit_nb_visits>
+				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<sum_daily_exit_nb_uniq_visitors>1</sum_daily_exit_nb_uniq_visitors>
+				<avg_time_on_page>0</avg_time_on_page>
+				<bounce_rate>0%</bounce_rate>
+				<exit_rate>100%</exit_rate>
+				<url>http://piwik.net/Topic/hw43061</url>
+			</row>
+		</subtable>
+	</row>
 	<row>
 		<label>translations</label>
 		<nb_visits>1</nb_visits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml
index c8388c1f4d1893bfd072c94a5324dc2f0acb9d75..18b7f289f647764258d1d8e463343494526997b1 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_month.xml
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
-	<nb_pageviews>26</nb_pageviews>
-	<nb_uniq_pageviews>26</nb_uniq_pageviews>
+	<nb_pageviews>32</nb_pageviews>
+	<nb_uniq_pageviews>32</nb_uniq_pageviews>
 	<nb_downloads>4</nb_downloads>
 	<nb_uniq_downloads>4</nb_uniq_downloads>
 	<nb_outlinks>0</nb_outlinks>
 	<nb_uniq_outlinks>0</nb_uniq_outlinks>
 	<nb_searches>0</nb_searches>
 	<nb_keywords>0</nb_keywords>
+	<avg_time_generation>0.277</avg_time_generation>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml
index a87ec05ee33fddcf3f53f5dcca94b40548158e74..0fc359540dcc52c551e1e58ea755b48674753535 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Actions.get_range.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
-	<nb_pageviews>50</nb_pageviews>
-	<nb_uniq_pageviews>44</nb_uniq_pageviews>
+	<nb_pageviews>56</nb_pageviews>
+	<nb_uniq_pageviews>50</nb_uniq_pageviews>
 	<nb_downloads>5</nb_downloads>
 	<nb_uniq_downloads>5</nb_uniq_downloads>
 	<nb_outlinks>1</nb_outlinks>
 	<nb_uniq_outlinks>1</nb_uniq_outlinks>
 	<nb_searches>0</nb_searches>
 	<nb_keywords>0</nb_keywords>
-	<avg_time_generation>0.301</avg_time_generation>
+	<avg_time_generation>0.298</avg_time_generation>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml
index 6f8a9a4c9878632d0e3ec990cb33e0acc2e59681..491523012e9af9550d48e9efb8d8335c68b4555a 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__CustomVariables.getCustomVariables_month.xml
@@ -2,28 +2,34 @@
 <result>
 	<row>
 		<label>HTTP-code</label>
-		<nb_actions>29</nb_actions>
+		<nb_actions>35</nb_actions>
 		<subtable>
 			<row>
 				<label>200</label>
-				<nb_visits>23</nb_visits>
-				<nb_actions>25</nb_actions>
-				<sum_daily_nb_uniq_visitors>23</sum_daily_nb_uniq_visitors>
+				<nb_visits>26</nb_visits>
+				<nb_actions>28</nb_actions>
+				<sum_daily_nb_uniq_visitors>26</sum_daily_nb_uniq_visitors>
 			</row>
 			<row>
 				<label>301</label>
-				<nb_visits>1</nb_visits>
-				<nb_actions>1</nb_actions>
-				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+				<nb_visits>2</nb_visits>
+				<nb_actions>2</nb_actions>
+				<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 			</row>
 			<row>
-				<label>307</label>
+				<label>404</label>
+				<nb_visits>2</nb_visits>
+				<nb_actions>2</nb_actions>
+				<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+			</row>
+			<row>
+				<label>302</label>
 				<nb_visits>1</nb_visits>
 				<nb_actions>1</nb_actions>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 			</row>
 			<row>
-				<label>404</label>
+				<label>307</label>
 				<nb_visits>1</nb_visits>
 				<nb_actions>1</nb_actions>
 				<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml
index 38d80d2b64b3d60ebeb8f221d170f56127f69260..34fadbbd5726143dcfac8d29dc2d71d1ca126762 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrand_month.xml
@@ -2,14 +2,14 @@
 <result>
 	<row>
 		<label>Unknown</label>
-		<nb_visits>25</nb_visits>
-		<nb_actions>28</nb_actions>
+		<nb_visits>28</nb_visits>
+		<nb_actions>32</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>23</bounce_count>
-		<nb_visits_converted>23</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>548</sum_visit_length>
+		<bounce_count>25</bounce_count>
+		<nb_visits_converted>26</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/brand/Unknown.ico</logo>
 	</row>
 	<row>
@@ -24,4 +24,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/brand/HTC.ico</logo>
 	</row>
+	<row>
+		<label>Samsung</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/brand/Samsung.ico</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml
index bb6679c9714cf98fd8cc2733ed5feb6ba2c3fb05..147f52ac7c9972ecb09ff697e2845f75bd60f8c9 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserEngines_month.xml
@@ -13,15 +13,26 @@
 	</row>
 	<row>
 		<label>Trident (IE)</label>
-		<nb_visits>6</nb_visits>
-		<nb_actions>6</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>7</nb_visits>
+		<nb_actions>8</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
 		<bounce_count>6</bounce_count>
-		<nb_visits_converted>6</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
+		<nb_visits_converted>7</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
+	<row>
+		<label>Blink (Chrome, Opera)</label>
+		<nb_visits>3</nb_visits>
+		<nb_actions>4</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>3</sum_visit_length>
+		<bounce_count>2</bounce_count>
+		<nb_visits_converted>3</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
+	</row>
 	<row>
 		<label>Unknown</label>
 		<nb_visits>2</nb_visits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml
index bc93ec3bb8a95b83f31f4820c10104b81a392a23..82fd2a7603ce4048d0db571cd4cf22bbd283ca42 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserFamilies_month.xml
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
 	<row>
-		<label>Internet Explorer</label>
-		<nb_visits>6</nb_visits>
-		<nb_actions>6</nb_actions>
+		<label>Chrome</label>
+		<nb_visits>7</nb_visits>
+		<nb_actions>7</nb_actions>
 		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>6</bounce_count>
-		<nb_visits_converted>6</nb_visits_converted>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>7</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
 	</row>
 	<row>
-		<label>Chrome</label>
-		<nb_visits>5</nb_visits>
-		<nb_actions>5</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>5</bounce_count>
-		<nb_visits_converted>5</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
+		<label>Internet Explorer</label>
+		<nb_visits>7</nb_visits>
+		<nb_actions>8</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>6</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
+		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
 	</row>
 	<row>
 		<label>Epiphany</label>
@@ -84,4 +84,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/UNK.gif</logo>
 	</row>
+	<row>
+		<label>Chrome Mobile</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CM.gif</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml
index 39e7328e8c76291e6951e69d3e7808dc5fd15509..90f330a5e579698b2eb6f075f6a8338ad2096edf 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowserVersions_month.xml
@@ -72,6 +72,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
 	</row>
+	<row>
+		<label>Chrome 37.0</label>
+		<nb_visits>2</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>1</max_actions>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>2</bounce_count>
+		<nb_visits_converted>2</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
+	</row>
 	<row>
 		<label>Firefox 6.0</label>
 		<nb_visits>2</nb_visits>
@@ -108,6 +120,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
 	</row>
+	<row>
+		<label>Chrome Mobile 39.0</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CM.gif</logo>
+	</row>
 	<row>
 		<label>Internet Explorer 6.0</label>
 		<nb_visits>1</nb_visits>
@@ -120,4 +144,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
 	</row>
+	<row>
+		<label>Internet Explorer 8.0</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml
index bc93ec3bb8a95b83f31f4820c10104b81a392a23..82fd2a7603ce4048d0db571cd4cf22bbd283ca42 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getBrowsers_month.xml
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
 	<row>
-		<label>Internet Explorer</label>
-		<nb_visits>6</nb_visits>
-		<nb_actions>6</nb_actions>
+		<label>Chrome</label>
+		<nb_visits>7</nb_visits>
+		<nb_actions>7</nb_actions>
 		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>6</bounce_count>
-		<nb_visits_converted>6</nb_visits_converted>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>7</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
 	</row>
 	<row>
-		<label>Chrome</label>
-		<nb_visits>5</nb_visits>
-		<nb_actions>5</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>5</bounce_count>
-		<nb_visits_converted>5</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
+		<label>Internet Explorer</label>
+		<nb_visits>7</nb_visits>
+		<nb_actions>8</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>6</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
+		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
 	</row>
 	<row>
 		<label>Epiphany</label>
@@ -84,4 +84,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/UNK.gif</logo>
 	</row>
+	<row>
+		<label>Chrome Mobile</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CM.gif</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml
index b9bf650ebc84a5fa7ac1a41e5fa26d5567e6133b..d0be913ad265c5478c6c8bf801a69f27b5abbba7 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getModel_month.xml
@@ -2,14 +2,14 @@
 <result>
 	<row>
 		<label>Unknown</label>
-		<nb_visits>25</nb_visits>
-		<nb_actions>28</nb_actions>
+		<nb_visits>28</nb_visits>
+		<nb_actions>32</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>23</bounce_count>
-		<nb_visits_converted>23</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>548</sum_visit_length>
+		<bounce_count>25</bounce_count>
+		<nb_visits_converted>26</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
 	</row>
 	<row>
 		<label>Vision</label>
@@ -22,4 +22,15 @@
 		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
+	<row>
+		<label>GALAXY S5</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml
index af7e4f8f924246c7c6567ea77d24a8812f895f56..cfa85794747c7d7dce9d7e1a8a20f3cd87f3555d 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsFamilies_month.xml
@@ -12,40 +12,40 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/LIN.gif</logo>
 	</row>
+	<row>
+		<label>Mac</label>
+		<nb_visits>8</nb_visits>
+		<nb_actions>11</nb_actions>
+		<max_actions>3</max_actions>
+		<sum_visit_length>306</sum_visit_length>
+		<bounce_count>6</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/MAC.gif</logo>
+	</row>
 	<row>
 		<label>Windows</label>
-		<nb_visits>9</nb_visits>
-		<nb_actions>9</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>10</nb_visits>
+		<nb_actions>11</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
 		<bounce_count>9</bounce_count>
-		<nb_visits_converted>9</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>9</sum_daily_nb_uniq_visitors>
+		<nb_visits_converted>10</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/WI7.gif</logo>
 	</row>
-	<row>
-		<label>Mac</label>
-		<nb_visits>6</nb_visits>
-		<nb_actions>9</nb_actions>
-		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>4</bounce_count>
-		<nb_visits_converted>5</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/os/MAC.gif</logo>
-	</row>
 	<row>
 		<label>Android</label>
-		<nb_visits>2</nb_visits>
-		<nb_actions>2</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>3</nb_visits>
+		<nb_actions>4</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
 		<bounce_count>2</bounce_count>
-		<nb_visits_converted>2</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<nb_visits_converted>3</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/AND.gif</logo>
 	</row>
 	<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml
index 254ec3889b3396a65ecc381e6fa70123673f76d9..636ccfdeb778d104fd4455253da465c8b4a2d02f 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getOsVersions_month.xml
@@ -48,6 +48,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/AND.gif</logo>
 	</row>
+	<row>
+		<label>Mac 10.10</label>
+		<nb_visits>2</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>1</max_actions>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>2</bounce_count>
+		<nb_visits_converted>2</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/MAC.gif</logo>
+	</row>
 	<row>
 		<label>Windows XP</label>
 		<nb_visits>2</nb_visits>
@@ -60,6 +72,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/WXP.gif</logo>
 	</row>
+	<row>
+		<label>Android 4.4</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/AND.gif</logo>
+	</row>
 	<row>
 		<label>Bot</label>
 		<nb_visits>1</nb_visits>
@@ -96,4 +120,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/UNK.gif</logo>
 	</row>
+	<row>
+		<label>Windows</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/WIN.gif</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml
index 0a059a62d67058dfe91cc94770385c54e5ecc92e..e838256d3f2eac29fc244d208a41d80d1007a6c3 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__DevicesDetection.getType_month.xml
@@ -2,39 +2,39 @@
 <result>
 	<row>
 		<label>Desktop</label>
-		<nb_visits>23</nb_visits>
-		<nb_actions>26</nb_actions>
+		<nb_visits>26</nb_visits>
+		<nb_actions>30</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>21</bounce_count>
-		<nb_visits_converted>22</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>23</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>548</sum_visit_length>
+		<bounce_count>23</bounce_count>
+		<nb_visits_converted>25</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/screens/normal.gif</logo>
 	</row>
 	<row>
-		<label>Unknown</label>
-		<nb_visits>2</nb_visits>
-		<nb_actions>2</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<label>Smartphone</label>
+		<nb_visits>3</nb_visits>
+		<nb_actions>4</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
 		<bounce_count>2</bounce_count>
-		<nb_visits_converted>1</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/screens/unknown.gif</logo>
+		<nb_visits_converted>3</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/screens/smartphone.png</logo>
 	</row>
 	<row>
-		<label>Smartphone</label>
+		<label>Unknown</label>
 		<nb_visits>2</nb_visits>
 		<nb_actions>2</nb_actions>
 		<max_actions>1</max_actions>
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>2</bounce_count>
-		<nb_visits_converted>2</nb_visits_converted>
+		<nb_visits_converted>1</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/screens/smartphone.png</logo>
+		<logo>plugins/DevicesDetection/images/screens/unknown.gif</logo>
 	</row>
 	<row>
 		<label>Tablet</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml
index 1ba1449d50cf3b1903a0fbf07517dcaead3612c7..8c1697b2218922fbe5fe67abf239078302502087 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getDaysToConversion_month.xml
@@ -2,7 +2,7 @@
 <result>
 	<row>
 		<label>0 days</label>
-		<nb_conversions>24</nb_conversions>
+		<nb_conversions>28</nb_conversions>
 	</row>
 	<row>
 		<label>1 day</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml
index 0a94d5f36db23610ae10110873314fdd66d4e4a5..970c5a295dc8696b17ae6ee853791ab95d0198f8 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.getVisitsUntilConversion_month.xml
@@ -2,7 +2,7 @@
 <result>
 	<row>
 		<label>1 visit</label>
-		<nb_conversions>25</nb_conversions>
+		<nb_conversions>29</nb_conversions>
 	</row>
 	<row>
 		<label>2 visits</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
index 4c6855264a3230ca96dc14964c1afc49dea6f4f2..35d78ccc178ab8e1c9ac3497fa2a8fe0e2de12e3 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Goals.get_month.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
-	<nb_conversions>25</nb_conversions>
-	<nb_visits_converted>25</nb_visits_converted>
-	<revenue>125</revenue>
-	<conversion_rate>92.59%</conversion_rate>
+	<nb_conversions>29</nb_conversions>
+	<nb_visits_converted>29</nb_visits_converted>
+	<revenue>145</revenue>
+	<conversion_rate>93.55%</conversion_rate>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
index 1b6f100c5e0ed6af346fbe731f527389619f2336..fc1e81976f630bd4f02672500f4e9afa91deebe2 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Live.getLastVisitsDetails_range.xml
@@ -1786,6 +1786,451 @@
 		
 		
 		
+	</row>
+	<row>
+		<idSite>1</idSite>
+		<idVisit>45</idVisit>
+		<visitIp>172.20.1.0</visitIp>
+		
+		<actionDetails>
+			<row>
+				<type>action</type>
+				<url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url>
+				<pageTitle>302/URL = http%3A%2F%2Fpiwik.net%2FCitrix%2FXenApp%2FWan%2Fauth%2Flogin.jsp</pageTitle>
+				<pageIdAction>62</pageIdAction>
+				
+				<pageId>62</pageId>
+				<customVariables>
+					<row>
+						<customVariablePageName1>HTTP-code</customVariablePageName1>
+						<customVariablePageValue1>302</customVariablePageValue1>
+					</row>
+				</customVariables>
+				<timeSpent>240</timeSpent>
+				<timeSpentPretty>4 min 0s</timeSpentPretty>
+				<icon />
+			</row>
+			<row>
+				<type>goal</type>
+				<goalName>all</goalName>
+				<goalId>1</goalId>
+				<revenue>5</revenue>
+				<goalPageId>62</goalPageId>
+				
+				<url>http://piwik.net/Citrix/XenApp/Wan/auth/login.jsp</url>
+				<icon>plugins/Morpheus/images/goal.png</icon>
+			</row>
+			<row>
+				<type>action</type>
+				<url>http://piwik.net/Citrix/XenApp/Wan/auth/silentDetection.jsp</url>
+				<pageTitle />
+				<pageIdAction>63</pageIdAction>
+				
+				<pageId>63</pageId>
+				<customVariables>
+					<row>
+						<customVariablePageName1>HTTP-code</customVariablePageName1>
+						<customVariablePageValue1>200</customVariablePageValue1>
+					</row>
+				</customVariables>
+				<icon />
+			</row>
+		</actionDetails>
+		<goalConversions>1</goalConversions>
+		<siteCurrency>USD</siteCurrency>
+		<siteCurrencySymbol>$</siteCurrencySymbol>
+		
+		
+		
+		
+		<searches>0</searches>
+		<actions>2</actions>
+		<userId />
+		<visitorType>new</visitorType>
+		<visitorTypeIcon />
+		<visitConverted>1</visitConverted>
+		<visitConvertedIcon>plugins/Morpheus/images/goal.png</visitConvertedIcon>
+		<visitCount>1</visitCount>
+		
+		<visitEcommerceStatus>none</visitEcommerceStatus>
+		<visitEcommerceStatusIcon />
+		<daysSinceFirstVisit>0</daysSinceFirstVisit>
+		<daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+		<visitDuration>242</visitDuration>
+		<visitDurationPretty>4 min 2s</visitDurationPretty>
+		<customVariables>
+		</customVariables>
+		<deviceType>Desktop</deviceType>
+		<operatingSystem>Windows</operatingSystem>
+		<operatingSystemCode>WIN</operatingSystemCode>
+		<operatingSystemIcon>plugins/DevicesDetection/images/os/WIN.gif</operatingSystemIcon>
+		<browserFamily>Trident</browserFamily>
+		<browserFamilyDescription>Trident (IE)</browserFamilyDescription>
+		<browser>Internet Explorer 8.0</browser>
+		<browserName>Internet Explorer</browserName>
+		<browserIcon>plugins/DevicesDetection/images/browsers/IE.gif</browserIcon>
+		<browserCode>IE</browserCode>
+		<browserVersion>8.0</browserVersion>
+		<events>0</events>
+		<provider>Unknown</provider>
+		<providerName>Unknown</providerName>
+		<providerUrl />
+		<referrerType>direct</referrerType>
+		<referrerTypeName>Direct Entry</referrerTypeName>
+		<referrerName />
+		<referrerKeyword />
+		<referrerKeywordPosition />
+		<referrerUrl />
+		<referrerSearchEngineUrl />
+		<referrerSearchEngineIcon />
+		<continent>Unknown</continent>
+		<continentCode>unk</continentCode>
+		<country>Unknown</country>
+		<countryCode>xx</countryCode>
+		<countryFlag>plugins/UserCountry/images/flags/xx.png</countryFlag>
+		<region />
+		<regionCode />
+		<city />
+		<location>Unknown</location>
+		<latitude />
+		<longitude />
+		<resolution>unknown</resolution>
+		<plugins />
+		<pluginsIcons />
+		<visitLocalTime>11:55:13</visitLocalTime>
+		<visitLocalHour>11</visitLocalHour>
+		<daysSinceLastVisit>0</daysSinceLastVisit>
+		
+		
+		
+		
+		
+	</row>
+	<row>
+		<idSite>1</idSite>
+		<idVisit>44</idVisit>
+		<visitIp>173.5.0.0</visitIp>
+		
+		<actionDetails>
+			<row>
+				<type>goal</type>
+				<goalName>all</goalName>
+				<goalId>1</goalId>
+				<revenue>5</revenue>
+				<goalPageId>61</goalPageId>
+				
+				<url>http://piwik.net/hello/from/another/world/6,681965</url>
+				<icon>plugins/Morpheus/images/goal.png</icon>
+			</row>
+			<row>
+				<type>action</type>
+				<url>http://piwik.net/hello/from/another/world/6,681965</url>
+				<pageTitle />
+				<pageIdAction>60</pageIdAction>
+				
+				<pageId>61</pageId>
+				<customVariables>
+					<row>
+						<customVariablePageName1>HTTP-code</customVariablePageName1>
+						<customVariablePageValue1>200</customVariablePageValue1>
+					</row>
+				</customVariables>
+				<generationTime>0.36s</generationTime>
+				<icon />
+			</row>
+		</actionDetails>
+		<goalConversions>1</goalConversions>
+		<siteCurrency>USD</siteCurrency>
+		<siteCurrencySymbol>$</siteCurrencySymbol>
+		
+		
+		
+		
+		<searches>0</searches>
+		<actions>1</actions>
+		<userId>user2</userId>
+		<visitorType>returning</visitorType>
+		<visitorTypeIcon>plugins/Live/images/returningVisitor.gif</visitorTypeIcon>
+		<visitConverted>1</visitConverted>
+		<visitConvertedIcon>plugins/Morpheus/images/goal.png</visitConvertedIcon>
+		<visitCount>1</visitCount>
+		
+		<visitEcommerceStatus>none</visitEcommerceStatus>
+		<visitEcommerceStatusIcon />
+		<daysSinceFirstVisit>0</daysSinceFirstVisit>
+		<daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+		<visitDuration>1</visitDuration>
+		<visitDurationPretty>1s</visitDurationPretty>
+		<customVariables>
+		</customVariables>
+		<deviceType>Desktop</deviceType>
+		<operatingSystem>Mac</operatingSystem>
+		<operatingSystemCode>MAC</operatingSystemCode>
+		<operatingSystemIcon>plugins/DevicesDetection/images/os/MAC.gif</operatingSystemIcon>
+		<browserFamily>Blink</browserFamily>
+		<browserFamilyDescription>Blink (Chrome, Opera)</browserFamilyDescription>
+		<browser>Chrome 37.0</browser>
+		<browserName>Chrome</browserName>
+		<browserIcon>plugins/DevicesDetection/images/browsers/CH.gif</browserIcon>
+		<browserCode>CH</browserCode>
+		<browserVersion>37.0</browserVersion>
+		<events>0</events>
+		<provider>Unknown</provider>
+		<providerName>Unknown</providerName>
+		<providerUrl />
+		<referrerType>direct</referrerType>
+		<referrerTypeName>Direct Entry</referrerTypeName>
+		<referrerName />
+		<referrerKeyword />
+		<referrerKeywordPosition />
+		<referrerUrl />
+		<referrerSearchEngineUrl />
+		<referrerSearchEngineIcon />
+		<continent>North America</continent>
+		<continentCode>amn</continentCode>
+		<country>United States</country>
+		<countryCode>us</countryCode>
+		<countryFlag>plugins/UserCountry/images/flags/us.png</countryFlag>
+		<region />
+		<regionCode />
+		<city />
+		<location>United States</location>
+		<latitude>38</latitude>
+		<longitude>-97</longitude>
+		<resolution>unknown</resolution>
+		<plugins />
+		<pluginsIcons />
+		<visitLocalTime>17:30:00</visitLocalTime>
+		<visitLocalHour>17</visitLocalHour>
+		<daysSinceLastVisit>0</daysSinceLastVisit>
+		
+		
+		
+		
+		
+	</row>
+	<row>
+		<idSite>1</idSite>
+		<idVisit>42</idVisit>
+		<visitIp>70.95.0.0</visitIp>
+		
+		<actionDetails>
+			<row>
+				<type>goal</type>
+				<goalName>all</goalName>
+				<goalId>1</goalId>
+				<revenue>5</revenue>
+				<goalPageId>58</goalPageId>
+				
+				<url>http://piwik.net/Products/theProduct</url>
+				<icon>plugins/Morpheus/images/goal.png</icon>
+			</row>
+			<row>
+				<type>action</type>
+				<url>http://piwik.net/Topic/hw43061</url>
+				<pageTitle>301/URL = http%3A%2F%2Fpiwik.net%2FTopic%2Fhw43061</pageTitle>
+				<pageIdAction>57</pageIdAction>
+				
+				<pageId>59</pageId>
+				<customVariables>
+					<row>
+						<customVariablePageName1>HTTP-code</customVariablePageName1>
+						<customVariablePageValue1>301</customVariablePageValue1>
+					</row>
+				</customVariables>
+				<icon />
+			</row>
+			<row>
+				<type>action</type>
+				<url>http://piwik.net/Products/theProduct</url>
+				<pageTitle />
+				<pageIdAction>55</pageIdAction>
+				
+				<pageId>58</pageId>
+				<customVariables>
+					<row>
+						<customVariablePageName1>HTTP-code</customVariablePageName1>
+						<customVariablePageValue1>200</customVariablePageValue1>
+					</row>
+				</customVariables>
+				<generationTime>0.11s</generationTime>
+				<timeSpent>0</timeSpent>
+				<timeSpentPretty>0s</timeSpentPretty>
+				<icon />
+			</row>
+		</actionDetails>
+		<goalConversions>1</goalConversions>
+		<siteCurrency>USD</siteCurrency>
+		<siteCurrencySymbol>$</siteCurrencySymbol>
+		
+		
+		
+		
+		<searches>0</searches>
+		<actions>2</actions>
+		<userId>user1</userId>
+		<visitorType>new</visitorType>
+		<visitorTypeIcon />
+		<visitConverted>1</visitConverted>
+		<visitConvertedIcon>plugins/Morpheus/images/goal.png</visitConvertedIcon>
+		<visitCount>1</visitCount>
+		
+		<visitEcommerceStatus>none</visitEcommerceStatus>
+		<visitEcommerceStatusIcon />
+		<daysSinceFirstVisit>0</daysSinceFirstVisit>
+		<daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+		<visitDuration>2</visitDuration>
+		<visitDurationPretty>2s</visitDurationPretty>
+		<customVariables>
+		</customVariables>
+		<deviceType>Smartphone</deviceType>
+		<operatingSystem>Android</operatingSystem>
+		<operatingSystemCode>AND</operatingSystemCode>
+		<operatingSystemIcon>plugins/DevicesDetection/images/os/AND.gif</operatingSystemIcon>
+		<browserFamily>Blink</browserFamily>
+		<browserFamilyDescription>Blink (Chrome, Opera)</browserFamilyDescription>
+		<browser>Chrome Mobile 39.0</browser>
+		<browserName>Chrome Mobile</browserName>
+		<browserIcon>plugins/DevicesDetection/images/browsers/CM.gif</browserIcon>
+		<browserCode>CM</browserCode>
+		<browserVersion>39.0</browserVersion>
+		<events>0</events>
+		<provider>Unknown</provider>
+		<providerName>Unknown</providerName>
+		<providerUrl />
+		<referrerType>direct</referrerType>
+		<referrerTypeName>Direct Entry</referrerTypeName>
+		<referrerName />
+		<referrerKeyword />
+		<referrerKeywordPosition />
+		<referrerUrl />
+		<referrerSearchEngineUrl />
+		<referrerSearchEngineIcon />
+		<continent>North America</continent>
+		<continentCode>amn</continentCode>
+		<country>United States</country>
+		<countryCode>us</countryCode>
+		<countryFlag>plugins/UserCountry/images/flags/us.png</countryFlag>
+		<region />
+		<regionCode />
+		<city />
+		<location>United States</location>
+		<latitude>38</latitude>
+		<longitude>-97</longitude>
+		<resolution>unknown</resolution>
+		<plugins />
+		<pluginsIcons />
+		<visitLocalTime>17:00:00</visitLocalTime>
+		<visitLocalHour>17</visitLocalHour>
+		<daysSinceLastVisit>0</daysSinceLastVisit>
+		
+		
+		
+		
+		
+	</row>
+	<row>
+		<idSite>1</idSite>
+		<idVisit>43</idVisit>
+		<visitIp>173.5.0.0</visitIp>
+		
+		<actionDetails>
+			<row>
+				<type>goal</type>
+				<goalName>all</goalName>
+				<goalId>1</goalId>
+				<revenue>5</revenue>
+				<goalPageId>60</goalPageId>
+				
+				<url>http://piwik.net/hello/world/6,681965</url>
+				<icon>plugins/Morpheus/images/goal.png</icon>
+			</row>
+			<row>
+				<type>action</type>
+				<url>http://piwik.net/hello/world/6,681965</url>
+				<pageTitle>404/URL = http%3A%2F%2Fpiwik.net%2Fhello%2Fworld%2F6%2C681965</pageTitle>
+				<pageIdAction>59</pageIdAction>
+				
+				<pageId>60</pageId>
+				<customVariables>
+					<row>
+						<customVariablePageName1>HTTP-code</customVariablePageName1>
+						<customVariablePageValue1>404</customVariablePageValue1>
+					</row>
+				</customVariables>
+				<generationTime>0.36s</generationTime>
+				<icon />
+			</row>
+		</actionDetails>
+		<goalConversions>1</goalConversions>
+		<siteCurrency>USD</siteCurrency>
+		<siteCurrencySymbol>$</siteCurrencySymbol>
+		
+		
+		
+		
+		<searches>0</searches>
+		<actions>1</actions>
+		<userId />
+		<visitorType>new</visitorType>
+		<visitorTypeIcon />
+		<visitConverted>1</visitConverted>
+		<visitConvertedIcon>plugins/Morpheus/images/goal.png</visitConvertedIcon>
+		<visitCount>1</visitCount>
+		
+		<visitEcommerceStatus>none</visitEcommerceStatus>
+		<visitEcommerceStatusIcon />
+		<daysSinceFirstVisit>0</daysSinceFirstVisit>
+		<daysSinceLastEcommerceOrder>0</daysSinceLastEcommerceOrder>
+		<visitDuration>0</visitDuration>
+		<visitDurationPretty>0s</visitDurationPretty>
+		<customVariables>
+		</customVariables>
+		<deviceType>Desktop</deviceType>
+		<operatingSystem>Mac</operatingSystem>
+		<operatingSystemCode>MAC</operatingSystemCode>
+		<operatingSystemIcon>plugins/DevicesDetection/images/os/MAC.gif</operatingSystemIcon>
+		<browserFamily>Blink</browserFamily>
+		<browserFamilyDescription>Blink (Chrome, Opera)</browserFamilyDescription>
+		<browser>Chrome 37.0</browser>
+		<browserName>Chrome</browserName>
+		<browserIcon>plugins/DevicesDetection/images/browsers/CH.gif</browserIcon>
+		<browserCode>CH</browserCode>
+		<browserVersion>37.0</browserVersion>
+		<events>0</events>
+		<provider>Unknown</provider>
+		<providerName>Unknown</providerName>
+		<providerUrl />
+		<referrerType>direct</referrerType>
+		<referrerTypeName>Direct Entry</referrerTypeName>
+		<referrerName />
+		<referrerKeyword />
+		<referrerKeywordPosition />
+		<referrerUrl />
+		<referrerSearchEngineUrl />
+		<referrerSearchEngineIcon />
+		<continent>North America</continent>
+		<continentCode>amn</continentCode>
+		<country>United States</country>
+		<countryCode>us</countryCode>
+		<countryFlag>plugins/UserCountry/images/flags/us.png</countryFlag>
+		<region />
+		<regionCode />
+		<city />
+		<location>United States</location>
+		<latitude>38</latitude>
+		<longitude>-97</longitude>
+		<resolution>unknown</resolution>
+		<plugins />
+		<pluginsIcons />
+		<visitLocalTime>17:00:00</visitLocalTime>
+		<visitLocalHour>17</visitLocalHour>
+		<daysSinceLastVisit>0</daysSinceLastVisit>
+		
+		
+		
+		
+		
 	</row>
 	<row>
 		<idSite>1</idSite>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
index eb2209a224e7e7e8963be833f0b0e13edd06b47c..d2edd33b602927437c05eeab99abd37cf4dc16dc 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getAll_month.xml
@@ -2,10 +2,10 @@
 <result>
 	<row>
 		<label>Piwik test</label>
-		<nb_visits>27</nb_visits>
-		<nb_actions>30</nb_actions>
-		<nb_pageviews>26</nb_pageviews>
-		<revenue>125</revenue>
+		<nb_visits>31</nb_visits>
+		<nb_actions>36</nb_actions>
+		<nb_pageviews>32</nb_pageviews>
+		<revenue>145</revenue>
 		<visits_evolution>100%</visits_evolution>
 		<actions_evolution>100%</actions_evolution>
 		<pageviews_evolution>100%</pageviews_evolution>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml
index 1fb93e2a2abc6affa70542dc6179649c0fc12777..79b56ff9799a7f889943c890162255bca8e87637 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__MultiSites.getOne_month.xml
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
-	<nb_visits>27</nb_visits>
-	<nb_actions>30</nb_actions>
+	<nb_visits>31</nb_visits>
+	<nb_actions>36</nb_actions>
 	<visits_evolution>100%</visits_evolution>
 	<actions_evolution>100%</actions_evolution>
 	<pageviews_evolution>100%</pageviews_evolution>
 	<revenue_evolution>100%</revenue_evolution>
-	<nb_pageviews>26</nb_pageviews>
-	<revenue>125</revenue>
+	<nb_pageviews>32</nb_pageviews>
+	<revenue>145</revenue>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
index 8cc6494492a35050c4058f1efc7a8ae8023cc432..f83cd0a71c0405f33aa3c9449d854117ab108d25 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Provider.getProvider_month.xml
@@ -2,14 +2,14 @@
 <result>
 	<row>
 		<label>Unknown</label>
-		<nb_visits>27</nb_visits>
-		<nb_actions>30</nb_actions>
+		<nb_visits>31</nb_visits>
+		<nb_actions>36</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>25</bounce_count>
-		<nb_visits_converted>25</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>550</sum_visit_length>
+		<bounce_count>27</bounce_count>
+		<nb_visits_converted>29</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>30</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 		<url />
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml
index 80a6349ac1c80ba68cca637acf2dec80ef2798f7..9b5ba79691ada699fd4293c224f82832cf4147f1 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__Referrers.getReferrerType_month.xml
@@ -2,22 +2,22 @@
 <result>
 	<row>
 		<label>Direct Entry</label>
-		<nb_visits>25</nb_visits>
-		<nb_actions>28</nb_actions>
+		<nb_visits>29</nb_visits>
+		<nb_actions>34</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>23</bounce_count>
+		<sum_visit_length>550</sum_visit_length>
+		<bounce_count>25</bounce_count>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>23</nb_conversions>
-				<nb_visits_converted>23</nb_visits_converted>
-				<revenue>115</revenue>
+				<nb_conversions>27</nb_conversions>
+				<nb_visits_converted>27</nb_visits_converted>
+				<revenue>135</revenue>
 			</row>
 		</goals>
-		<nb_conversions>23</nb_conversions>
-		<revenue>115</revenue>
-		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<nb_conversions>27</nb_conversions>
+		<revenue>135</revenue>
+		<sum_daily_nb_uniq_visitors>28</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 	</row>
 	<row>
 		<label>Websites</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml
index a14f0cec91fce5df24c8fd25b92a201dbd6e532a..dc702824f1203add009a4d31f81da2119898dac4 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCity_month.xml
@@ -2,22 +2,22 @@
 <result>
 	<row>
 		<label>Unknown</label>
-		<nb_visits>22</nb_visits>
-		<nb_actions>25</nb_actions>
+		<nb_visits>26</nb_visits>
+		<nb_actions>31</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>20</bounce_count>
+		<sum_visit_length>550</sum_visit_length>
+		<bounce_count>22</bounce_count>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>20</nb_conversions>
-				<nb_visits_converted>20</nb_visits_converted>
-				<revenue>100</revenue>
+				<nb_conversions>24</nb_conversions>
+				<nb_visits_converted>24</nb_visits_converted>
+				<revenue>120</revenue>
 			</row>
 		</goals>
-		<nb_conversions>20</nb_conversions>
-		<revenue>100</revenue>
-		<sum_daily_nb_uniq_visitors>22</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<nb_conversions>24</nb_conversions>
+		<revenue>120</revenue>
+		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 		<city_name>Unknown</city_name>
 		<city>xx</city>
 		<region>xx</region>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml
index 23e244b75129fa3a514211f3ab8a396970f507d1..212e81c78595f2db8534c0fcbfb5693999189f9a 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getContinent_month.xml
@@ -21,44 +21,44 @@
 		<code>Asia</code>
 	</row>
 	<row>
-		<label>Unknown</label>
-		<nb_visits>7</nb_visits>
-		<nb_actions>7</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<label>North America</label>
+		<nb_visits>8</nb_visits>
+		<nb_actions>9</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>3</sum_visit_length>
 		<bounce_count>7</bounce_count>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>7</nb_conversions>
-				<nb_visits_converted>7</nb_visits_converted>
-				<revenue>35</revenue>
+				<nb_conversions>8</nb_conversions>
+				<nb_visits_converted>8</nb_visits_converted>
+				<revenue>40</revenue>
 			</row>
 		</goals>
-		<nb_conversions>7</nb_conversions>
-		<revenue>35</revenue>
+		<nb_conversions>8</nb_conversions>
+		<revenue>40</revenue>
 		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<code>Unknown</code>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
+		<code>North America</code>
 	</row>
 	<row>
-		<label>North America</label>
-		<nb_visits>5</nb_visits>
-		<nb_actions>5</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>5</bounce_count>
+		<label>Unknown</label>
+		<nb_visits>8</nb_visits>
+		<nb_actions>9</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>7</bounce_count>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>5</nb_conversions>
-				<nb_visits_converted>5</nb_visits_converted>
-				<revenue>25</revenue>
+				<nb_conversions>8</nb_conversions>
+				<nb_visits_converted>8</nb_visits_converted>
+				<revenue>40</revenue>
 			</row>
 		</goals>
-		<nb_conversions>5</nb_conversions>
-		<revenue>25</revenue>
-		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
+		<nb_conversions>8</nb_conversions>
+		<revenue>40</revenue>
+		<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<code>North America</code>
+		<code>Unknown</code>
 	</row>
 	<row>
 		<label>South America</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml
index ce5523efdeae2dc95abf7b667f5212d07fa395b1..1c82333bf07e88989ebfec6b3a319b30e0417387 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getCountry_month.xml
@@ -24,48 +24,48 @@
 		<logoHeight>11</logoHeight>
 	</row>
 	<row>
-		<label>Unknown</label>
-		<nb_visits>7</nb_visits>
-		<nb_actions>7</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<label>United States</label>
+		<nb_visits>8</nb_visits>
+		<nb_actions>9</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>3</sum_visit_length>
 		<bounce_count>7</bounce_count>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>7</nb_conversions>
-				<nb_visits_converted>7</nb_visits_converted>
-				<revenue>35</revenue>
+				<nb_conversions>8</nb_conversions>
+				<nb_visits_converted>8</nb_visits_converted>
+				<revenue>40</revenue>
 			</row>
 		</goals>
-		<nb_conversions>7</nb_conversions>
-		<revenue>35</revenue>
+		<nb_conversions>8</nb_conversions>
+		<revenue>40</revenue>
 		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<code>xx</code>
-		<logo>plugins/UserCountry/images/flags/xx.png</logo>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
+		<code>us</code>
+		<logo>plugins/UserCountry/images/flags/us.png</logo>
 		<logoWidth>16</logoWidth>
 		<logoHeight>11</logoHeight>
 	</row>
 	<row>
-		<label>United States</label>
-		<nb_visits>5</nb_visits>
-		<nb_actions>5</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>5</bounce_count>
+		<label>Unknown</label>
+		<nb_visits>8</nb_visits>
+		<nb_actions>9</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>7</bounce_count>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>5</nb_conversions>
-				<nb_visits_converted>5</nb_visits_converted>
-				<revenue>25</revenue>
+				<nb_conversions>8</nb_conversions>
+				<nb_visits_converted>8</nb_visits_converted>
+				<revenue>40</revenue>
 			</row>
 		</goals>
-		<nb_conversions>5</nb_conversions>
-		<revenue>25</revenue>
-		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
+		<nb_conversions>8</nb_conversions>
+		<revenue>40</revenue>
+		<sum_daily_nb_uniq_visitors>8</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<code>us</code>
-		<logo>plugins/UserCountry/images/flags/us.png</logo>
+		<code>xx</code>
+		<logo>plugins/UserCountry/images/flags/xx.png</logo>
 		<logoWidth>16</logoWidth>
 		<logoHeight>11</logoHeight>
 	</row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml
index 4067fb26181abc41a4b9c5e4c303736257a6bb32..1149b705a7c4c8f1e09c5927cda33277766f3262 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserCountry.getRegion_month.xml
@@ -2,22 +2,22 @@
 <result>
 	<row>
 		<label>Unknown</label>
-		<nb_visits>22</nb_visits>
-		<nb_actions>25</nb_actions>
+		<nb_visits>26</nb_visits>
+		<nb_actions>31</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>20</bounce_count>
+		<sum_visit_length>550</sum_visit_length>
+		<bounce_count>22</bounce_count>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>20</nb_conversions>
-				<nb_visits_converted>20</nb_visits_converted>
-				<revenue>100</revenue>
+				<nb_conversions>24</nb_conversions>
+				<nb_visits_converted>24</nb_visits_converted>
+				<revenue>120</revenue>
 			</row>
 		</goals>
-		<nb_conversions>20</nb_conversions>
-		<revenue>100</revenue>
-		<sum_daily_nb_uniq_visitors>22</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<nb_conversions>24</nb_conversions>
+		<revenue>120</revenue>
+		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 		<region>xx</region>
 		<country>xx</country>
 		<country_name>Unknown</country_name>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserType_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserType_month.xml
index bb6679c9714cf98fd8cc2733ed5feb6ba2c3fb05..147f52ac7c9972ecb09ff697e2845f75bd60f8c9 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserType_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserType_month.xml
@@ -13,15 +13,26 @@
 	</row>
 	<row>
 		<label>Trident (IE)</label>
-		<nb_visits>6</nb_visits>
-		<nb_actions>6</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>7</nb_visits>
+		<nb_actions>8</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
 		<bounce_count>6</bounce_count>
-		<nb_visits_converted>6</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
+		<nb_visits_converted>7</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
+	<row>
+		<label>Blink (Chrome, Opera)</label>
+		<nb_visits>3</nb_visits>
+		<nb_actions>4</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>3</sum_visit_length>
+		<bounce_count>2</bounce_count>
+		<nb_visits_converted>3</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
+	</row>
 	<row>
 		<label>Unknown</label>
 		<nb_visits>2</nb_visits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserVersion_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserVersion_month.xml
index 39e7328e8c76291e6951e69d3e7808dc5fd15509..90f330a5e579698b2eb6f075f6a8338ad2096edf 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserVersion_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowserVersion_month.xml
@@ -72,6 +72,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
 	</row>
+	<row>
+		<label>Chrome 37.0</label>
+		<nb_visits>2</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>1</max_actions>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>2</bounce_count>
+		<nb_visits_converted>2</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
+	</row>
 	<row>
 		<label>Firefox 6.0</label>
 		<nb_visits>2</nb_visits>
@@ -108,6 +120,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
 	</row>
+	<row>
+		<label>Chrome Mobile 39.0</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CM.gif</logo>
+	</row>
 	<row>
 		<label>Internet Explorer 6.0</label>
 		<nb_visits>1</nb_visits>
@@ -120,4 +144,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
 	</row>
+	<row>
+		<label>Internet Explorer 8.0</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowser_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowser_month.xml
index bc93ec3bb8a95b83f31f4820c10104b81a392a23..82fd2a7603ce4048d0db571cd4cf22bbd283ca42 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowser_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getBrowser_month.xml
@@ -1,28 +1,28 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
 	<row>
-		<label>Internet Explorer</label>
-		<nb_visits>6</nb_visits>
-		<nb_actions>6</nb_actions>
+		<label>Chrome</label>
+		<nb_visits>7</nb_visits>
+		<nb_actions>7</nb_actions>
 		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>6</bounce_count>
-		<nb_visits_converted>6</nb_visits_converted>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>7</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
 	</row>
 	<row>
-		<label>Chrome</label>
-		<nb_visits>5</nb_visits>
-		<nb_actions>5</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>5</bounce_count>
-		<nb_visits_converted>5</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
+		<label>Internet Explorer</label>
+		<nb_visits>7</nb_visits>
+		<nb_actions>8</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>6</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/browsers/CH.gif</logo>
+		<logo>plugins/DevicesDetection/images/browsers/IE.gif</logo>
 	</row>
 	<row>
 		<label>Epiphany</label>
@@ -84,4 +84,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/browsers/UNK.gif</logo>
 	</row>
+	<row>
+		<label>Chrome Mobile</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/browsers/CM.gif</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getConfiguration_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getConfiguration_month.xml
index 446d719865ca67ad7c3a410de9ae03c4dfb6587e..75d278b51bb646e1aa049df1f6bce9258367eddf 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getConfiguration_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getConfiguration_month.xml
@@ -33,6 +33,17 @@
 		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
+	<row>
+		<label>Mac / Chrome / unknown</label>
+		<nb_visits>3</nb_visits>
+		<nb_actions>3</nb_actions>
+		<max_actions>1</max_actions>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>3</bounce_count>
+		<nb_visits_converted>3</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+	</row>
 	<row>
 		<label>Android / Android Browser / unknown</label>
 		<nb_visits>2</nb_visits>
@@ -67,18 +78,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
 	<row>
-		<label>Bot / Unknown / unknown</label>
+		<label>Android / Chrome Mobile / unknown</label>
 		<nb_visits>1</nb_visits>
-		<nb_actions>1</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>1</bounce_count>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
 		<nb_visits_converted>1</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
 	</row>
 	<row>
-		<label>GNU/Linux / Chrome / unknown</label>
+		<label>Bot / Unknown / unknown</label>
 		<nb_visits>1</nb_visits>
 		<nb_actions>1</nb_actions>
 		<max_actions>1</max_actions>
@@ -89,7 +100,7 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
 	<row>
-		<label>Mac / Chrome / unknown</label>
+		<label>GNU/Linux / Chrome / unknown</label>
 		<nb_visits>1</nb_visits>
 		<nb_actions>1</nb_actions>
 		<max_actions>1</max_actions>
@@ -110,6 +121,17 @@
 		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
+	<row>
+		<label>Windows / Internet Explorer / unknown</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>0</sum_daily_nb_users>
+	</row>
 	<row>
 		<label>Windows XP / Chrome / 1280x800</label>
 		<nb_visits>1</nb_visits>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguageCode_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguageCode_month.xml
index fc37ec8a8fd100bd46e10dffc0f3723bbfce6493..8d4b8d074e821e05600c6c9d7642914fb0dbdddb 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguageCode_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguageCode_month.xml
@@ -2,13 +2,13 @@
 <result>
 	<row>
 		<label>Unknown (xx)</label>
-		<nb_visits>27</nb_visits>
-		<nb_actions>30</nb_actions>
+		<nb_visits>31</nb_visits>
+		<nb_actions>36</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>25</bounce_count>
-		<nb_visits_converted>25</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>550</sum_visit_length>
+		<bounce_count>27</bounce_count>
+		<nb_visits_converted>29</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>30</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguage_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguage_month.xml
index 1f8c578db73d28b5dcbdce702f4f534c13b6760b..3ed6ff730986a323aefd48fa7f42446896efe4dc 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguage_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getLanguage_month.xml
@@ -2,13 +2,13 @@
 <result>
 	<row>
 		<label>Unknown</label>
-		<nb_visits>27</nb_visits>
-		<nb_actions>30</nb_actions>
+		<nb_visits>31</nb_visits>
+		<nb_actions>36</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>25</bounce_count>
-		<nb_visits_converted>25</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>27</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>550</sum_visit_length>
+		<bounce_count>27</bounce_count>
+		<nb_visits_converted>29</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>30</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getMobileVsDesktop_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getMobileVsDesktop_month.xml
index 0a059a62d67058dfe91cc94770385c54e5ecc92e..e838256d3f2eac29fc244d208a41d80d1007a6c3 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getMobileVsDesktop_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getMobileVsDesktop_month.xml
@@ -2,39 +2,39 @@
 <result>
 	<row>
 		<label>Desktop</label>
-		<nb_visits>23</nb_visits>
-		<nb_actions>26</nb_actions>
+		<nb_visits>26</nb_visits>
+		<nb_actions>30</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>21</bounce_count>
-		<nb_visits_converted>22</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>23</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>548</sum_visit_length>
+		<bounce_count>23</bounce_count>
+		<nb_visits_converted>25</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/screens/normal.gif</logo>
 	</row>
 	<row>
-		<label>Unknown</label>
-		<nb_visits>2</nb_visits>
-		<nb_actions>2</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<label>Smartphone</label>
+		<nb_visits>3</nb_visits>
+		<nb_actions>4</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
 		<bounce_count>2</bounce_count>
-		<nb_visits_converted>1</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/screens/unknown.gif</logo>
+		<nb_visits_converted>3</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/screens/smartphone.png</logo>
 	</row>
 	<row>
-		<label>Smartphone</label>
+		<label>Unknown</label>
 		<nb_visits>2</nb_visits>
 		<nb_actions>2</nb_actions>
 		<max_actions>1</max_actions>
 		<sum_visit_length>0</sum_visit_length>
 		<bounce_count>2</bounce_count>
-		<nb_visits_converted>2</nb_visits_converted>
+		<nb_visits_converted>1</nb_visits_converted>
 		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/screens/smartphone.png</logo>
+		<logo>plugins/DevicesDetection/images/screens/unknown.gif</logo>
 	</row>
 	<row>
 		<label>Tablet</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOSFamily_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOSFamily_month.xml
index af7e4f8f924246c7c6567ea77d24a8812f895f56..cfa85794747c7d7dce9d7e1a8a20f3cd87f3555d 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOSFamily_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOSFamily_month.xml
@@ -12,40 +12,40 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/LIN.gif</logo>
 	</row>
+	<row>
+		<label>Mac</label>
+		<nb_visits>8</nb_visits>
+		<nb_actions>11</nb_actions>
+		<max_actions>3</max_actions>
+		<sum_visit_length>306</sum_visit_length>
+		<bounce_count>6</bounce_count>
+		<nb_visits_converted>7</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>7</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/MAC.gif</logo>
+	</row>
 	<row>
 		<label>Windows</label>
-		<nb_visits>9</nb_visits>
-		<nb_actions>9</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>10</nb_visits>
+		<nb_actions>11</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
 		<bounce_count>9</bounce_count>
-		<nb_visits_converted>9</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>9</sum_daily_nb_uniq_visitors>
+		<nb_visits_converted>10</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>10</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/WI7.gif</logo>
 	</row>
-	<row>
-		<label>Mac</label>
-		<nb_visits>6</nb_visits>
-		<nb_actions>9</nb_actions>
-		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>4</bounce_count>
-		<nb_visits_converted>5</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>6</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
-		<logo>plugins/DevicesDetection/images/os/MAC.gif</logo>
-	</row>
 	<row>
 		<label>Android</label>
-		<nb_visits>2</nb_visits>
-		<nb_actions>2</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>3</nb_visits>
+		<nb_actions>4</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
 		<bounce_count>2</bounce_count>
-		<nb_visits_converted>2</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>2</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<nb_visits_converted>3</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/AND.gif</logo>
 	</row>
 	<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOS_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOS_month.xml
index 254ec3889b3396a65ecc381e6fa70123673f76d9..636ccfdeb778d104fd4455253da465c8b4a2d02f 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOS_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getOS_month.xml
@@ -48,6 +48,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/AND.gif</logo>
 	</row>
+	<row>
+		<label>Mac 10.10</label>
+		<nb_visits>2</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>1</max_actions>
+		<sum_visit_length>1</sum_visit_length>
+		<bounce_count>2</bounce_count>
+		<nb_visits_converted>2</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/MAC.gif</logo>
+	</row>
 	<row>
 		<label>Windows XP</label>
 		<nb_visits>2</nb_visits>
@@ -60,6 +72,18 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/WXP.gif</logo>
 	</row>
+	<row>
+		<label>Android 4.4</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>2</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>1</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/AND.gif</logo>
+	</row>
 	<row>
 		<label>Bot</label>
 		<nb_visits>1</nb_visits>
@@ -96,4 +120,16 @@
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 		<logo>plugins/DevicesDetection/images/os/UNK.gif</logo>
 	</row>
+	<row>
+		<label>Windows</label>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
+		<bounce_count>0</bounce_count>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<logo>plugins/DevicesDetection/images/os/WIN.gif</logo>
+	</row>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getPlugin_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getPlugin_month.xml
index d1f2bda02f845e12d58773f02ccd73b84b1aea69..a96d5feb81e7ee99b694462cff4ef1e2e1d90b2b 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getPlugin_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getPlugin_month.xml
@@ -3,43 +3,43 @@
 	<row>
 		<label>Cookie</label>
 		<nb_visits>2</nb_visits>
-		<nb_visits_percentage>10%</nb_visits_percentage>
+		<nb_visits_percentage>8%</nb_visits_percentage>
 		<logo>plugins/UserSettings/images/plugins/cookie.gif</logo>
 	</row>
 	<row>
 		<label>Flash</label>
 		<nb_visits>2</nb_visits>
-		<nb_visits_percentage>10%</nb_visits_percentage>
+		<nb_visits_percentage>8%</nb_visits_percentage>
 		<logo>plugins/UserSettings/images/plugins/flash.gif</logo>
 	</row>
 	<row>
 		<label>Java</label>
 		<nb_visits>2</nb_visits>
-		<nb_visits_percentage>10%</nb_visits_percentage>
+		<nb_visits_percentage>8%</nb_visits_percentage>
 		<logo>plugins/UserSettings/images/plugins/java.gif</logo>
 	</row>
 	<row>
 		<label>Director</label>
 		<nb_visits>1</nb_visits>
-		<nb_visits_percentage>5%</nb_visits_percentage>
+		<nb_visits_percentage>4%</nb_visits_percentage>
 		<logo>plugins/UserSettings/images/plugins/director.gif</logo>
 	</row>
 	<row>
 		<label>Gears</label>
 		<nb_visits>1</nb_visits>
-		<nb_visits_percentage>5%</nb_visits_percentage>
+		<nb_visits_percentage>4%</nb_visits_percentage>
 		<logo>plugins/UserSettings/images/plugins/gears.gif</logo>
 	</row>
 	<row>
 		<label>Pdf</label>
 		<nb_visits>1</nb_visits>
-		<nb_visits_percentage>5%</nb_visits_percentage>
+		<nb_visits_percentage>4%</nb_visits_percentage>
 		<logo>plugins/UserSettings/images/plugins/pdf.gif</logo>
 	</row>
 	<row>
 		<label>Windowsmedia</label>
 		<nb_visits>1</nb_visits>
-		<nb_visits_percentage>5%</nb_visits_percentage>
+		<nb_visits_percentage>4%</nb_visits_percentage>
 		<logo>plugins/UserSettings/images/plugins/windowsmedia.gif</logo>
 	</row>
 	<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getResolution_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getResolution_month.xml
index 659d5beea11515949b2fb41b483e5c7de81d8b84..378996fabcacf7c4b04003e7f08e77b5c0c378a3 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getResolution_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__UserSettings.getResolution_month.xml
@@ -2,14 +2,14 @@
 <result>
 	<row>
 		<label>unknown</label>
-		<nb_visits>25</nb_visits>
-		<nb_actions>28</nb_actions>
+		<nb_visits>29</nb_visits>
+		<nb_actions>34</nb_actions>
 		<max_actions>3</max_actions>
-		<sum_visit_length>305</sum_visit_length>
-		<bounce_count>23</bounce_count>
-		<nb_visits_converted>23</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>25</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_visit_length>550</sum_visit_length>
+		<bounce_count>25</bounce_count>
+		<nb_visits_converted>27</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>28</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 	</row>
 	<row>
 		<label>1024x768</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml
index 3633fe591455905c0e862657698625d9b314bc0e..02a0dc72729117f205fa2c0c68544d8f1cafdeaf 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_month.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
-	<nb_uniq_visitors_returning>1</nb_uniq_visitors_returning>
-	<nb_users_returning>0</nb_users_returning>
-	<nb_visits_returning>1</nb_visits_returning>
-	<nb_actions_returning>1</nb_actions_returning>
-	<nb_visits_converted_returning>1</nb_visits_converted_returning>
-	<bounce_count_returning>1</bounce_count_returning>
-	<sum_visit_length_returning>0</sum_visit_length_returning>
+	<nb_uniq_visitors_returning>2</nb_uniq_visitors_returning>
+	<nb_users_returning>1</nb_users_returning>
+	<nb_visits_returning>2</nb_visits_returning>
+	<nb_actions_returning>2</nb_actions_returning>
+	<nb_visits_converted_returning>2</nb_visits_converted_returning>
+	<bounce_count_returning>2</bounce_count_returning>
+	<sum_visit_length_returning>1</sum_visit_length_returning>
 	<max_actions_returning>1</max_actions_returning>
 	<bounce_rate_returning>100%</bounce_rate_returning>
 	<nb_actions_per_visit_returning>1</nb_actions_per_visit_returning>
-	<avg_time_on_site_returning>0</avg_time_on_site_returning>
+	<avg_time_on_site_returning>1</avg_time_on_site_returning>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml
index f301254690deda6589c397b03bfdd8e93eb08cdc..c42125d07294aeb3f0d5e8db9fdafbb2aaf1b5ed 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitFrequency.get_range.xml
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
-	<nb_visits_returning>10</nb_visits_returning>
-	<nb_actions_returning>12</nb_actions_returning>
-	<nb_visits_converted_returning>9</nb_visits_converted_returning>
-	<bounce_count_returning>8</bounce_count_returning>
-	<sum_visit_length_returning>115</sum_visit_length_returning>
+	<nb_visits_returning>11</nb_visits_returning>
+	<nb_actions_returning>13</nb_actions_returning>
+	<nb_visits_converted_returning>10</nb_visits_converted_returning>
+	<bounce_count_returning>9</bounce_count_returning>
+	<sum_visit_length_returning>116</sum_visit_length_returning>
 	<max_actions_returning>2</max_actions_returning>
-	<bounce_rate_returning>80%</bounce_rate_returning>
+	<bounce_rate_returning>82%</bounce_rate_returning>
 	<nb_actions_per_visit_returning>1.2</nb_actions_per_visit_returning>
-	<avg_time_on_site_returning>12</avg_time_on_site_returning>
+	<avg_time_on_site_returning>11</avg_time_on_site_returning>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml
index 1a729a8e268e2a97abcbb383ab686348f1baae9e..4de7a18047e3b9020bc519c4c62cb75ec7031e36 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getByDayOfWeek_month.xml
@@ -12,24 +12,24 @@
 	</row>
 	<row>
 		<label>Wednesday</label>
-		<nb_visits>2</nb_visits>
-		<nb_uniq_visitors>2</nb_uniq_visitors>
-		<nb_actions>2</nb_actions>
-		<nb_users>0</nb_users>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>2</bounce_count>
-		<nb_visits_converted>2</nb_visits_converted>
+		<nb_visits>5</nb_visits>
+		<nb_uniq_visitors>4</nb_uniq_visitors>
+		<nb_actions>6</nb_actions>
+		<nb_users>2</nb_users>
+		<sum_visit_length>3</sum_visit_length>
+		<bounce_count>4</bounce_count>
+		<nb_visits_converted>5</nb_visits_converted>
 		<day_of_week>3</day_of_week>
 	</row>
 	<row>
 		<label>Thursday</label>
-		<nb_visits>9</nb_visits>
-		<nb_uniq_visitors>9</nb_uniq_visitors>
-		<nb_actions>9</nb_actions>
+		<nb_visits>10</nb_visits>
+		<nb_uniq_visitors>10</nb_uniq_visitors>
+		<nb_actions>11</nb_actions>
 		<nb_users>0</nb_users>
-		<sum_visit_length>0</sum_visit_length>
+		<sum_visit_length>242</sum_visit_length>
 		<bounce_count>9</bounce_count>
-		<nb_visits_converted>9</nb_visits_converted>
+		<nb_visits_converted>10</nb_visits_converted>
 		<day_of_week>4</day_of_week>
 	</row>
 	<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml
index 427319a89f7637f90ee1f2b89a97ffc31b32768d..dc841363a5dab7a8580fe1c57f4dea0be3f78e83 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerLocalTime_month.xml
@@ -123,13 +123,13 @@
 	</row>
 	<row>
 		<label>11h</label>
-		<nb_visits>0</nb_visits>
-		<nb_actions>0</nb_actions>
-		<max_actions>0</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
 		<bounce_count>0</bounce_count>
-		<nb_visits_converted>0</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>0</sum_daily_nb_uniq_visitors>
+		<nb_visits_converted>1</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
 	</row>
 	<row>
@@ -189,14 +189,14 @@
 	</row>
 	<row>
 		<label>17h</label>
-		<nb_visits>3</nb_visits>
-		<nb_actions>3</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>3</bounce_count>
-		<nb_visits_converted>2</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<nb_visits>6</nb_visits>
+		<nb_actions>7</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>3</sum_visit_length>
+		<bounce_count>5</bounce_count>
+		<nb_visits_converted>5</nb_visits_converted>
+		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 	</row>
 	<row>
 		<label>18h</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml
index 515e54eb3b42a9efe63a3da9fe9f7b6c42ecd7cc..144d6c4221799cd6cff6a335f51e5b8a7208f103 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitTime.getVisitInformationPerServerTime_month.xml
@@ -150,14 +150,23 @@
 	</row>
 	<row>
 		<label>11h</label>
-		<nb_visits>0</nb_visits>
-		<nb_actions>0</nb_actions>
-		<max_actions>0</max_actions>
-		<sum_visit_length>0</sum_visit_length>
+		<nb_visits>1</nb_visits>
+		<nb_actions>2</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>242</sum_visit_length>
 		<bounce_count>0</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>0</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_uniq_visitors>1</sum_daily_nb_uniq_visitors>
 		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<goals>
+			<row idgoal='1'>
+				<nb_conversions>1</nb_conversions>
+				<nb_visits_converted>1</nb_visits_converted>
+				<revenue>5</revenue>
+			</row>
+		</goals>
+		<nb_conversions>1</nb_conversions>
+		<revenue>5</revenue>
 	</row>
 	<row>
 		<label>12h</label>
@@ -243,23 +252,23 @@
 	</row>
 	<row>
 		<label>17h</label>
-		<nb_visits>3</nb_visits>
-		<nb_actions>3</nb_actions>
-		<max_actions>1</max_actions>
-		<sum_visit_length>0</sum_visit_length>
-		<bounce_count>3</bounce_count>
+		<nb_visits>6</nb_visits>
+		<nb_actions>7</nb_actions>
+		<max_actions>2</max_actions>
+		<sum_visit_length>3</sum_visit_length>
+		<bounce_count>5</bounce_count>
 		<nb_visits_converted>0</nb_visits_converted>
-		<sum_daily_nb_uniq_visitors>3</sum_daily_nb_uniq_visitors>
-		<sum_daily_nb_users>0</sum_daily_nb_users>
+		<sum_daily_nb_uniq_visitors>5</sum_daily_nb_uniq_visitors>
+		<sum_daily_nb_users>2</sum_daily_nb_users>
 		<goals>
 			<row idgoal='1'>
-				<nb_conversions>2</nb_conversions>
-				<nb_visits_converted>2</nb_visits_converted>
-				<revenue>10</revenue>
+				<nb_conversions>5</nb_conversions>
+				<nb_visits_converted>5</nb_visits_converted>
+				<revenue>25</revenue>
 			</row>
 		</goals>
-		<nb_conversions>2</nb_conversions>
-		<revenue>10</revenue>
+		<nb_conversions>5</nb_conversions>
+		<revenue>25</revenue>
 	</row>
 	<row>
 		<label>18h</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml
index c47de22fc427a4ea573df4ef7d568f80d43e22ad..005a1842ab8e57b8bf4ee5a8f5c36f655a514b35 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_month.xml
@@ -2,11 +2,11 @@
 <result>
 	<row>
 		<label>New visits</label>
-		<nb_visits>26</nb_visits>
+		<nb_visits>29</nb_visits>
 	</row>
 	<row>
 		<label>0 days</label>
-		<nb_visits>0</nb_visits>
+		<nb_visits>1</nb_visits>
 	</row>
 	<row>
 		<label>1 day</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml
index c7ed81d100a3d282d7015cd8b671fa73eeeb1be3..a66c195749ed3c145e2584805cfcf269c7f5656a 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByDaysSinceLast_range.xml
@@ -2,11 +2,11 @@
 <result>
 	<row>
 		<label>New visits</label>
-		<nb_visits>30</nb_visits>
+		<nb_visits>33</nb_visits>
 	</row>
 	<row>
 		<label>0 days</label>
-		<nb_visits>3</nb_visits>
+		<nb_visits>4</nb_visits>
 	</row>
 	<row>
 		<label>1 day</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml
index 0830ca0d1001d1fe898981b5a48336803756185b..dcd45b3a61feb927fc86b149776a4c673ebbbb3e 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_month.xml
@@ -2,7 +2,7 @@
 <result>
 	<row>
 		<label>1 visit</label>
-		<nb_visits>27</nb_visits>
+		<nb_visits>31</nb_visits>
 		<nb_visits_percentage>100%</nb_visits_percentage>
 	</row>
 	<row>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml
index d7672ae30c7c4cf53f738fb563337ca73f10dba7..768a0961d2e81341d0f4dcfda9c13a2f7748e802 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsByVisitCount_range.xml
@@ -2,8 +2,8 @@
 <result>
 	<row>
 		<label>1 visit</label>
-		<nb_visits>33</nb_visits>
-		<nb_visits_percentage>83%</nb_visits_percentage>
+		<nb_visits>37</nb_visits>
+		<nb_visits_percentage>84%</nb_visits_percentage>
 	</row>
 	<row>
 		<label>2 visits</label>
@@ -18,7 +18,7 @@
 	<row>
 		<label>4 visits</label>
 		<nb_visits>1</nb_visits>
-		<nb_visits_percentage>3%</nb_visits_percentage>
+		<nb_visits_percentage>2%</nb_visits_percentage>
 	</row>
 	<row>
 		<label>5 visits</label>
@@ -33,7 +33,7 @@
 	<row>
 		<label>7 visits</label>
 		<nb_visits>1</nb_visits>
-		<nb_visits_percentage>3%</nb_visits_percentage>
+		<nb_visits_percentage>2%</nb_visits_percentage>
 	</row>
 	<row>
 		<label>8 visits</label>
@@ -58,7 +58,7 @@
 	<row>
 		<label>51-100 visits</label>
 		<nb_visits>1</nb_visits>
-		<nb_visits_percentage>3%</nb_visits_percentage>
+		<nb_visits_percentage>2%</nb_visits_percentage>
 	</row>
 	<row>
 		<label>101-200 visits</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml
index 4e6a9ab29ed46d6b301d05c0e6719866ac42632b..c00b8e2c507561b104aab774976a90606996a6c6 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_month.xml
@@ -2,11 +2,11 @@
 <result>
 	<row>
 		<label>1 page</label>
-		<nb_visits>25</nb_visits>
+		<nb_visits>27</nb_visits>
 	</row>
 	<row>
 		<label>2 pages</label>
-		<nb_visits>1</nb_visits>
+		<nb_visits>3</nb_visits>
 	</row>
 	<row>
 		<label>3 pages</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml
index 11e27426c02910e033b31738392aaaf6ca903587..95adfb7f9a392ab71f5ad4463110850ea41eb38a 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerPage_range.xml
@@ -2,11 +2,11 @@
 <result>
 	<row>
 		<label>1 page</label>
-		<nb_visits>34</nb_visits>
+		<nb_visits>36</nb_visits>
 	</row>
 	<row>
 		<label>2 pages</label>
-		<nb_visits>3</nb_visits>
+		<nb_visits>5</nb_visits>
 	</row>
 	<row>
 		<label>3 pages</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml
index a64c14a9673c775fdd503e97427075177ab328bc..1f6410e079559a0422a70c4d49bbf63c407a73bc 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_month.xml
@@ -2,7 +2,7 @@
 <result>
 	<row>
 		<label>0-10s</label>
-		<nb_visits>25</nb_visits>
+		<nb_visits>28</nb_visits>
 	</row>
 	<row>
 		<label>11-30s</label>
@@ -22,7 +22,7 @@
 	</row>
 	<row>
 		<label>4-7 min</label>
-		<nb_visits>0</nb_visits>
+		<nb_visits>1</nb_visits>
 	</row>
 	<row>
 		<label>7-10 min</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml
index a0cba6d294af4130a971460d53030ac6379e1968..c53cacde6f045aee7db737ed3c1cd542e23f4ab8 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitorInterest.getNumberOfVisitsPerVisitDuration_range.xml
@@ -2,7 +2,7 @@
 <result>
 	<row>
 		<label>0-10s</label>
-		<nb_visits>35</nb_visits>
+		<nb_visits>38</nb_visits>
 	</row>
 	<row>
 		<label>11-30s</label>
@@ -22,7 +22,7 @@
 	</row>
 	<row>
 		<label>4-7 min</label>
-		<nb_visits>0</nb_visits>
+		<nb_visits>1</nb_visits>
 	</row>
 	<row>
 		<label>7-10 min</label>
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml
index 3fb946966748c74c17e88efdbdab136d4c3a4f4b..8af80c337fce212214b9dcfe62d5beb85a63d248 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getActions_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>30</result>
\ No newline at end of file
+<result>36</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml
index 4c77f1f6e6033e2c861e4fa18a79df304b9fdb8e..40bd2e592a5902bdf9d39b4085ea459ca3ae7737 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getBounceCount_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>25</result>
\ No newline at end of file
+<result>27</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLengthPretty_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLengthPretty_month.xml
index 0a9c671f558dd011c15ac06d9cc83093fbb44a61..e686bbc101b92aacf3b6bd5088e1e49a9d146822 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLengthPretty_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLengthPretty_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>5 min 5s</result>
\ No newline at end of file
+<result>9 min 10s</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLength_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLength_month.xml
index df25f1c1f33072b1eecf837e315e13a79f5aabbb..9674a59b3a4db881bbfc089f6080cab0be3c1793 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLength_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getSumVisitsLength_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>305</result>
\ No newline at end of file
+<result>550</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml
index 40bd2e592a5902bdf9d39b4085ea459ca3ae7737..3fb946966748c74c17e88efdbdab136d4c3a4f4b 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUniqueVisitors_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>27</result>
\ No newline at end of file
+<result>30</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml
index f5722c2b947ae81c5390b2448986be96d1bf4ff3..13002b20179a7f01ad26b5afab050d0539adedf7 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getUsers_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>0</result>
\ No newline at end of file
+<result>2</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml
index 4c77f1f6e6033e2c861e4fa18a79df304b9fdb8e..46af1425a39189f6792635a1df8c5b1f72b6aa34 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisitsConverted_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>25</result>
\ No newline at end of file
+<result>29</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml
index 40bd2e592a5902bdf9d39b4085ea459ca3ae7737..51c650b8b2b37026485dd3f023536254a8638981 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.getVisits_month.xml
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="utf-8" ?>
-<result>27</result>
\ No newline at end of file
+<result>31</result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml
index 327d564f479323b2855bbe76d66030db9b200090..1772684d5e10535b85f7c04d90c8a4228c063c3f 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs__VisitsSummary.get_month.xml
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <result>
-	<nb_uniq_visitors>27</nb_uniq_visitors>
-	<nb_users>0</nb_users>
-	<nb_visits>27</nb_visits>
-	<nb_actions>30</nb_actions>
-	<nb_visits_converted>25</nb_visits_converted>
-	<bounce_count>25</bounce_count>
-	<sum_visit_length>305</sum_visit_length>
+	<nb_uniq_visitors>30</nb_uniq_visitors>
+	<nb_users>2</nb_users>
+	<nb_visits>31</nb_visits>
+	<nb_actions>36</nb_actions>
+	<nb_visits_converted>29</nb_visits_converted>
+	<bounce_count>27</bounce_count>
+	<sum_visit_length>550</sum_visit_length>
 	<max_actions>3</max_actions>
-	<bounce_rate>93%</bounce_rate>
-	<nb_actions_per_visit>1.1</nb_actions_per_visit>
-	<avg_time_on_site>11</avg_time_on_site>
+	<bounce_rate>87%</bounce_rate>
+	<nb_actions_per_visit>1.2</nb_actions_per_visit>
+	<avg_time_on_site>18</avg_time_on_site>
 </result>
\ No newline at end of file
diff --git a/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml b/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml
index 0fb183d46f39b9010ac24c45a0f0d2a6b288de9b..bce2027e1c72e5cb3d5cf955b64ce91cfe0778f5 100644
--- a/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml
+++ b/tests/PHPUnit/System/expected/test_ImportLogs_withEnhancedAndLast7__MultiSites.getAll_month.xml
@@ -3,11 +3,11 @@
 	<result date="2012-08">
 		<row>
 			<label>Piwik test</label>
-			<nb_visits>27</nb_visits>
-			<nb_actions>30</nb_actions>
-			<nb_pageviews>26</nb_pageviews>
-			<revenue>125</revenue>
-			<nb_conversions>25</nb_conversions>
+			<nb_visits>31</nb_visits>
+			<nb_actions>36</nb_actions>
+			<nb_pageviews>32</nb_pageviews>
+			<revenue>145</revenue>
+			<nb_conversions>29</nb_conversions>
 			<visits_evolution>100%</visits_evolution>
 			<actions_evolution>100%</actions_evolution>
 			<pageviews_evolution>100%</pageviews_evolution>
@@ -42,11 +42,11 @@
 			<nb_pageviews>10</nb_pageviews>
 			<revenue>5</revenue>
 			<nb_conversions>1</nb_conversions>
-			<visits_evolution>-96.3%</visits_evolution>
-			<actions_evolution>-66.7%</actions_evolution>
-			<pageviews_evolution>-61.5%</pageviews_evolution>
-			<revenue_evolution>-96%</revenue_evolution>
-			<nb_conversions_evolution>-96%</nb_conversions_evolution>
+			<visits_evolution>-96.8%</visits_evolution>
+			<actions_evolution>-72.2%</actions_evolution>
+			<pageviews_evolution>-68.8%</pageviews_evolution>
+			<revenue_evolution>-96.6%</revenue_evolution>
+			<nb_conversions_evolution>-96.6%</nb_conversions_evolution>
 			<group />
 			<main_url>http://piwik.net</main_url>
 			<idsite>1</idsite>
diff --git a/tests/PHPUnit/UI b/tests/PHPUnit/UI
index 6a6bbbb4db5f8243f462b94b3e57bc68e7366317..bc4eed362e35a721cd0911393a9cc1df6580a1d0 160000
--- a/tests/PHPUnit/UI
+++ b/tests/PHPUnit/UI
@@ -1 +1 @@
-Subproject commit 6a6bbbb4db5f8243f462b94b3e57bc68e7366317
+Subproject commit bc4eed362e35a721cd0911393a9cc1df6580a1d0
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/AddSummaryRowTest.php b/tests/PHPUnit/Unit/DataTable/Filter/AddSummaryRowTest.php
index f072011675b16b6315a27b3356b6fa6da1c3367a..b9701a88cde902c3bb5503df7fdd70a885f2abf0 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/AddSummaryRowTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/AddSummaryRowTest.php
@@ -11,6 +11,9 @@ namespace Piwik\Tests\Unit\DataTable\Filter;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Filter_AddSummaryRowTest extends \PHPUnit_Framework_TestCase
 {
     /**
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/ExcludeLowPopulationTest.php b/tests/PHPUnit/Unit/DataTable/Filter/ExcludeLowPopulationTest.php
index 6e8eb733b8c5775044cd65e9ee39f1fbc774f191..0f0675114f20c4f974233a1fe637fdad84383fa5 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/ExcludeLowPopulationTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/ExcludeLowPopulationTest.php
@@ -12,6 +12,9 @@ use Piwik\DataTable\Filter\ExcludeLowPopulation;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Filter_ExcludeLowPopulationTest extends \PHPUnit_Framework_TestCase
 {
     protected function getTestDataTable()
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/LimitTest.php b/tests/PHPUnit/Unit/DataTable/Filter/LimitTest.php
index 94d2d4c84be1f2a588ddb96bb98b527f9758da34..753220542c808ef37330903ec47e0673e5e38166 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/LimitTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/LimitTest.php
@@ -12,6 +12,9 @@ use Piwik\DataTable\Filter\Limit;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -39,9 +42,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testNormal()
     {
         $offset = 2;
@@ -55,9 +56,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testLimitLessThanCountShouldReturnCountLimit()
     {
         $offset = 2;
@@ -71,9 +70,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testLimitIsCountShouldNotDeleteAnything()
     {
         $offset = 0;
@@ -88,9 +85,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testLimitGreaterThanCountShouldReturnCountUntilCount()
     {
         $offset = 5;
@@ -105,9 +100,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testLimitIsNullShouldReturnCountIsOffset()
     {
         $offset = 1;
@@ -120,9 +113,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testOffsetJustBeforeSummaryRowShouldJustReturnSummaryRow()
     {
         $offset = 9;
@@ -136,9 +127,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testOffsetJustBeforeSummaryRowWithBigLimitShouldJustReturnSummaryRow()
     {
         $offset = 9;
@@ -152,9 +141,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testOffsetBeforeSummaryRowShouldJustReturnRowAndSummaryRow()
     {
         $offset = 8;
@@ -168,9 +155,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testOffsetGreaterThanCountShouldReturnEmptyTable()
     {
         $offset = 10;
@@ -182,9 +167,7 @@ class DataTable_Filter_LimitTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(10, $table->getMetadata(DataTable::TOTAL_ROWS_BEFORE_LIMIT_METADATA_NAME));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testLimitIsZeroShouldReturnEmptyTable()
     {
         $offset = 0;
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/PatternRecursiveTest.php b/tests/PHPUnit/Unit/DataTable/Filter/PatternRecursiveTest.php
index 4c9cd46ab3bd30f206545d756d7042fd1976eb14..8ee9c439dddde334873c7532704c3d54790b7c82 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/PatternRecursiveTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/PatternRecursiveTest.php
@@ -11,6 +11,9 @@ namespace Piwik\Tests\Unit\DataTable\Filter;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Filter_PatternRecursiveTest extends \PHPUnit_Framework_TestCase
 {
     /**
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/PatternTest.php b/tests/PHPUnit/Unit/DataTable/Filter/PatternTest.php
index e9d63f1d98ae1e4f923d7d6c242ee5c44b069b2d..5c97588a3c22fa1fa0f6a30953271c70b6681c99 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/PatternTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/PatternTest.php
@@ -11,6 +11,9 @@ namespace Piwik\Tests\Unit\DataTable\Filter;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Filter_PatternTest extends \PHPUnit_Framework_TestCase
 {
     /**
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php b/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php
index fd85b3a0101dd9a1b35d5056e91dc478c31bda5d..d77a3ca7ed9fa939a3e11cbc0fa855bb84909f89 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/PivotByDimensionTest.php
@@ -17,7 +17,7 @@ use PHPUnit_Framework_TestCase;
 use Exception;
 
 /**
- * @group Core
+ * @group DataTableTest
  */
 class PivotByDimensionTest extends PHPUnit_Framework_TestCase
 {
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/RangeCheckTest.php b/tests/PHPUnit/Unit/DataTable/Filter/RangeCheckTest.php
index 3c1d91a3576c7f9b23be2f5151af23def7986b65..0deccd217f807149fcaffb27b2f15b51e4d2042d 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/RangeCheckTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/RangeCheckTest.php
@@ -12,11 +12,12 @@ use Piwik\DataTable\Filter\RangeCheck;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Filter_RangeCheckTest extends \PHPUnit_Framework_TestCase
 {
-    /**
-     * @group Core
-     */
+
     public function testRangeCheckNormalDataTable()
     {
         $table = new DataTable();
@@ -34,9 +35,7 @@ class DataTable_Filter_RangeCheckTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expectedOrder, $table->getColumn('count'));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRangeCheckNormalDataTableNonIntegerValues()
     {
         $table = new DataTable();
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/SortTest.php b/tests/PHPUnit/Unit/DataTable/Filter/SortTest.php
index 64eab67a10352d683c21c7b47737a80dad98c2de..34ec2a2c9a74ba3d0a188b46900cc0ebd5ffff0c 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/SortTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/SortTest.php
@@ -13,13 +13,11 @@ use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
 /**
- * @group SortTest
+ * @group DataTableTest
  */
 class DataTable_Filter_SortTest extends \PHPUnit_Framework_TestCase
 {
-    /**
-     * @group Core
-     */
+
     public function testNormalSortDescending()
     {
         $table = new DataTable();
@@ -34,9 +32,7 @@ class DataTable_Filter_SortTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expectedOrder, $table->getColumn('label'));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testNormalSortAscending()
     {
         $table = new DataTable();
@@ -51,9 +47,7 @@ class DataTable_Filter_SortTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expectedOrder, $table->getColumn('label'));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testMissingColumnValuesShouldAppearLastAfterSortAsc()
     {
         $table = new DataTable();
@@ -71,9 +65,7 @@ class DataTable_Filter_SortTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expectedOrder, $table->getColumn('label'));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testMissingColumnValuesShouldAppearLastAfterSortDesc()
     {
         $table = new DataTable();
diff --git a/tests/PHPUnit/Unit/DataTable/Filter/TruncateTest.php b/tests/PHPUnit/Unit/DataTable/Filter/TruncateTest.php
index d82e8da4411b8a635bc54b99d73113e618d7f972..b3b5710f91e88756065c42d14ae3cb7d12330cb2 100644
--- a/tests/PHPUnit/Unit/DataTable/Filter/TruncateTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Filter/TruncateTest.php
@@ -12,11 +12,12 @@ use Piwik\DataTable\Filter\Truncate;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
 {
-    /**
-     * @group Core
-     */
+
     public function testUnrelatedDataTableNotFiltered()
     {
         // remark: this unit test would become invalid and would need to be rewritten if
@@ -38,9 +39,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
         $filter->filter($dataTableBeingFiltered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testForInfiniteRecursion()
     {
         $dataTableBeingFiltered = new DataTable();
@@ -62,9 +61,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
         $filter->filter($dataTableBeingFiltered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testOffsetIsCountSummaryRowShouldBeTheRow()
     {
         $table = $this->getDataTableCount5();
@@ -74,9 +71,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
         $this->assertTrue(Row::isEqual($table->getLastRow(), $this->getRow4()));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testOffsetIsLessThanCountSummaryRowShouldBeTheSum()
     {
         $table = $this->getDataTableCount5();
@@ -89,9 +84,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals(array_keys($table->getLastRow()->getColumns()), array_keys($expectedRow->getColumns()));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testOffsetIsMoreThanCountShouldNotTruncate()
     {
         $table = $this->getDataTableCount5();
@@ -101,9 +94,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
         $this->assertTrue(Row::isEqual($table->getLastRow(), $this->getRow4()));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testWhenThereIsAlreadyASummaryRowShouldReplaceTheSummaryRow()
     {
         $table = $this->getDataTableCount5();
@@ -116,9 +107,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
         $this->assertTrue(Row::isEqual($table->getLastRow(), $expectedRow));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testSumTablesWithSummaryRowShouldSumTheSummaryRow()
     {
         // row0, row1, row2, rowSummary1
@@ -142,9 +131,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
         $this->assertTrue(DataTable::isEqual($expectedTable, $table1));
     }
 
-    /**
-     * @group Core
-     */
+
     public function testAddOneTableWithSummaryRow()
     {
         // row0, row1, row2, rowSummary1
@@ -169,9 +156,7 @@ class DataTable_Filter_TruncateTest extends \PHPUnit_Framework_TestCase
 
     }
 
-    /**
-     * @group Core
-     */
+
     public function testWhenRowsInRandomOrderButSortSpecifiedShouldComputeSummaryRowAfterSort()
     {
         $table = new DataTable;
diff --git a/tests/PHPUnit/Unit/DataTable/MapTest.php b/tests/PHPUnit/Unit/DataTable/MapTest.php
index 659e76ac8fc227d50c2142c805d69f7206593225..179e3f11df07f036ea537391bb57a5cb50cde24d 100644
--- a/tests/PHPUnit/Unit/DataTable/MapTest.php
+++ b/tests/PHPUnit/Unit/DataTable/MapTest.php
@@ -7,6 +7,9 @@ use Piwik\DataTable\Manager;
 use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class Test_DataTable_Map extends \PHPUnit_Framework_TestCase
 {
     public function setUp()
diff --git a/tests/PHPUnit/Unit/DataTable/Renderer/CSVTest.php b/tests/PHPUnit/Unit/DataTable/Renderer/CSVTest.php
index 85691cab26f4ea6fa79f6a2cfa9b47398a2d79d7..c6fd94e40667f052d03a3e25698a13b8ea6b7770 100644
--- a/tests/PHPUnit/Unit/DataTable/Renderer/CSVTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Renderer/CSVTest.php
@@ -14,6 +14,9 @@ use Piwik\DataTable\Renderer\Csv;
 use Piwik\DataTable\Row;
 use Piwik\DataTable\Simple;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
 {
     public function setUp()
@@ -93,9 +96,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVTest1()
     {
         $dataTable = $this->_getDataTableTest();
@@ -111,9 +112,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVTest2()
     {
         $dataTable = $this->_getDataTableSimpleTest();
@@ -125,9 +124,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowTest();
@@ -139,9 +136,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVTest5()
     {
         $dataTable = $this->_getDataTableSimpleOneZeroRowTest();
@@ -153,9 +148,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVTest4()
     {
         $dataTable = $this->_getDataTableEmpty();
@@ -167,9 +160,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVTest6()
     {
         $dataTable = $this->_getDataTableSimpleOneFalseRowTest();
@@ -181,9 +172,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVRendererCorrectlyEscapesHeadersAndValues()
     {
         $dataTable = $this->_getDataTableSimpleWithCommasInCells();
@@ -301,9 +290,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVMapTest1()
     {
         $dataTable = $this->_getDataTableMapTest();
@@ -320,9 +307,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVMapTest2()
     {
         $dataTable = $this->_getDataTableSimpleMapTest();
@@ -335,9 +320,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVMapTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowMapTest();
@@ -349,9 +332,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVMapisMadeOfMapTest1()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_normal();
@@ -368,9 +349,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVMapIsMadeOfMapTest2()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simple();
@@ -383,9 +362,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testCSVMapIsMadeOfMapTest3()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simpleOneRow();
@@ -397,9 +374,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray1()
     {
         $data = array();
@@ -412,9 +387,7 @@ class DataTable_Renderer_CSVTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray2()
     {
         $data = array('a', 'b', 'c');
@@ -429,9 +402,7 @@ c';
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray3()
     {
         $data = array('a' => 'b', 'c' => 'd', 'e' => 'f', 5 => 'g');
@@ -445,9 +416,7 @@ b,d,f,g';
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray4()
     {
         $data = array('a' => 'b');
diff --git a/tests/PHPUnit/Unit/DataTable/Renderer/ConsoleTest.php b/tests/PHPUnit/Unit/DataTable/Renderer/ConsoleTest.php
index 686f6a1be68d64d23cefb8291971a239c6d935e3..209a7a37a7e6d368ae019bb970422a1c8753ea08 100644
--- a/tests/PHPUnit/Unit/DataTable/Renderer/ConsoleTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Renderer/ConsoleTest.php
@@ -13,6 +13,9 @@ use Piwik\DataTable;
 use Piwik\DataTable\Renderer\Console;
 use Piwik\DataTable\Row;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Renderer_ConsoleTest extends \PHPUnit_Framework_TestCase
 {
     public function setUp()
@@ -89,9 +92,7 @@ class DataTable_Renderer_ConsoleTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray1()
     {
         $data = array();
@@ -104,9 +105,7 @@ class DataTable_Renderer_ConsoleTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray2()
     {
         $data = array('a', 'b', 'c');
@@ -121,9 +120,7 @@ class DataTable_Renderer_ConsoleTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray3()
     {
         $data = array('a' => 'b', 'c' => 'd', 'e' => 'f', 5 => 'g');
@@ -136,9 +133,7 @@ class DataTable_Renderer_ConsoleTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray4()
     {
         $data = array('a' => 'b');
diff --git a/tests/PHPUnit/Unit/DataTable/Renderer/JSONTest.php b/tests/PHPUnit/Unit/DataTable/Renderer/JSONTest.php
index 738439474c1ce43c6185181b234098c3e9fa5271..754424182ca12e238e1b650a944e4696a0590a10 100644
--- a/tests/PHPUnit/Unit/DataTable/Renderer/JSONTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Renderer/JSONTest.php
@@ -14,6 +14,9 @@ use Piwik\DataTable\Renderer\Json;
 use Piwik\DataTable\Row;
 use Piwik\DataTable\Simple;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
 {
     public function setUp()
@@ -93,9 +96,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONTest1()
     {
         $dataTable = $this->_getDataTableTest();
@@ -108,9 +109,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONTest2()
     {
         $dataTable = $this->_getDataTableSimpleTest();
@@ -121,9 +120,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowTest();
@@ -133,9 +130,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONTest4()
     {
         $dataTable = $this->_getDataTableEmpty();
@@ -145,9 +140,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONTest5()
     {
         $dataTable = $this->_getDataTableSimpleOneZeroRowTest();
@@ -157,9 +150,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONTest6()
     {
         $dataTable = $this->_getDataTableSimpleOneFalseRowTest();
@@ -274,9 +265,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONArrayTest1()
     {
         $dataTable = $this->_getDataTableMapTest();
@@ -288,9 +277,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONMapTest2()
     {
         $dataTable = $this->_getDataTableSimpleMapTest();
@@ -303,9 +290,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONMapTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowMapTest();
@@ -317,9 +302,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONMapIsMadeOfMapTest1()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_normal();
@@ -330,9 +313,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONMapIsMadeOfMapTest2()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simple();
@@ -345,9 +326,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testJSONMapIsMadeOfMapTest3()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simpleOneRow();
@@ -359,9 +338,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray1()
     {
         $data = array();
@@ -373,9 +350,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray2()
     {
         $data = array('a', 'b', 'c', array('a' => 'b'), array(1, 2));
@@ -387,9 +362,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray3()
     {
         $data = array('a' => 'b', 'c' => 'd', 'e' => 'f', 5 => 'g');
@@ -401,9 +374,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray4()
     {
         $data = array('a' => 'b', 'c' => array(1, 2, 3, 4), 'e' => array('f' => 'g', 'h' => 'i', 'j' => 'k'));
@@ -415,9 +386,7 @@ class DataTable_Renderer_JSONTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray5()
     {
         $data = array('a' => 'b');
diff --git a/tests/PHPUnit/Unit/DataTable/Renderer/PHPTest.php b/tests/PHPUnit/Unit/DataTable/Renderer/PHPTest.php
index e3201dfbe6b2f650902cafc4f9784f3f0cc837ee..de8128cfb9a718cc3794ca218e849cabdc632098 100644
--- a/tests/PHPUnit/Unit/DataTable/Renderer/PHPTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Renderer/PHPTest.php
@@ -14,6 +14,9 @@ use Piwik\DataTable\Renderer\Php;
 use Piwik\DataTable\Row;
 use Piwik\DataTable\Simple;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
 {
     public function setUp()
@@ -93,9 +96,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPTest1()
     {
         $dataTable = $this->_getDataTableTest();
@@ -157,9 +158,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPTest2()
     {
         $dataTable = $this->_getDataTableSimpleTest();
@@ -176,9 +175,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowTest();
@@ -188,9 +185,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPTest4()
     {
         $dataTable = $this->_getDataTableEmpty();
@@ -200,9 +195,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPTest5()
     {
         $dataTable = $this->_getDataTableSimpleOneZeroRowTest();
@@ -212,9 +205,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPTest6()
     {
         $dataTable = $this->_getDataTableSimpleOneFalseRowTest();
@@ -329,9 +320,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPMapTest1()
     {
         $dataTable = $this->_getDataTableMapTest();
@@ -383,9 +372,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPMapTest2()
     {
         $dataTable = $this->_getDataTableSimpleMapTest();
@@ -410,9 +397,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPMapTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowMapTest();
@@ -428,9 +413,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPMapIsMadeOfMapTest1()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_normal();
@@ -484,9 +467,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPMapIsMadeOfMapTest2()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simple();
@@ -512,9 +493,7 @@ class DataTable_Renderer_PHPTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testPHPMapIsMadeOfMapTest3()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simpleOneRow();
diff --git a/tests/PHPUnit/Unit/DataTable/Renderer/XMLTest.php b/tests/PHPUnit/Unit/DataTable/Renderer/XMLTest.php
index 1abfe94b06c9b55f69f3cdeda5d79e9d184558b5..e9b02a9bd1305bfc2983b60074076741096c34fd 100644
--- a/tests/PHPUnit/Unit/DataTable/Renderer/XMLTest.php
+++ b/tests/PHPUnit/Unit/DataTable/Renderer/XMLTest.php
@@ -14,6 +14,9 @@ use Piwik\DataTable\Renderer\Xml;
 use Piwik\DataTable\Row;
 use Piwik\DataTable\Simple;
 
+/**
+ * @group DataTableTest
+ */
 class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
 {
     public function setUp()
@@ -93,9 +96,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLTest1()
     {
         $dataTable = $this->_getDataTableTest();
@@ -152,9 +153,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLTest2()
     {
         $dataTable = $this->_getDataTableSimpleTest();
@@ -172,9 +171,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowTest();
@@ -185,9 +182,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLTest4()
     {
         $dataTable = $this->_getDataTableEmpty();
@@ -198,9 +193,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLTest5()
     {
         $dataTable = $this->_getDataTableSimpleOneZeroRowTest();
@@ -211,9 +204,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLTest6()
     {
         $dataTable = $this->_getDataTableSimpleOneFalseRowTest();
@@ -224,9 +215,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLRendererSuccessfullyRendersWhenSimpleDataTableColumnsHaveInvalidXmlCharacters()
     {
         $dataTable = $this->_getDataTableSimpleWithInvalidChars();
@@ -241,9 +230,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLRendererSuccessfullyRendersWhenDataTableColumnsHaveInvalidXmlCharacters()
     {
         $dataTable = $this->_getDataTableWithInvalidChars();
@@ -365,9 +352,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         return $table;
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLMapTest1()
     {
         $dataTable = $this->_getDataTableMapTest();
@@ -412,9 +397,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLArrayIsMadeOfMapTest1()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_normal();
@@ -463,9 +446,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLMapTest2()
     {
         $dataTable = $this->_getDataTableSimpleMapTest();
@@ -487,9 +468,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLArrayIsMadeOfMapTest2()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simple();
@@ -513,9 +492,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLMapTest3()
     {
         $dataTable = $this->_getDataTableSimpleOneRowMapTest();
@@ -532,9 +509,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testXMLArrayIsMadeOfMapTest3()
     {
         $dataTable = $this->_getDataTableMap_containsDataTableMap_simpleOneRow();
@@ -552,9 +527,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $rendered);
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray1()
     {
         $data = array();
@@ -567,9 +540,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray2()
     {
         $data = array("firstElement",
@@ -592,9 +563,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray3()
     {
         $data = array('a' => 'b', 'c' => 'd', 'e' => 'f', 5 => 'g');
@@ -614,9 +583,7 @@ class DataTable_Renderer_XMLTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($expected, $render->render());
     }
 
-    /**
-     * @group Core
-     */
+
     public function testRenderArray4()
     {
         $data = array('c' => array(1, 2, 3, 4), 'e' => array('f' => 'g', 'h' => 'i', 'j' => 'k'));
diff --git a/tests/PHPUnit/Unit/DataTable/RowTest.php b/tests/PHPUnit/Unit/DataTable/RowTest.php
index 53a072fa3614d9f59b1d44ea5ce608860afb6083..7033299df57ce514b807709d65cc12a9802f4743 100644
--- a/tests/PHPUnit/Unit/DataTable/RowTest.php
+++ b/tests/PHPUnit/Unit/DataTable/RowTest.php
@@ -12,7 +12,7 @@ use Piwik\DataTable;
 use Piwik\DataTable\Row;
 
 /**
- * @group Core
+ * @group DataTableTest
  */
 class RowTest extends \PHPUnit_Framework_TestCase
 {
diff --git a/tests/PHPUnit/Unit/DataTableTest.php b/tests/PHPUnit/Unit/DataTableTest.php
index 30320f32ce1a98071e2d678c6b36d6234fd88e01..b36dbd514613359cd9bb8840581c370c648d0154 100644
--- a/tests/PHPUnit/Unit/DataTableTest.php
+++ b/tests/PHPUnit/Unit/DataTableTest.php
@@ -14,6 +14,9 @@ use Piwik\DataTable\Row;
 use Piwik\DataTable;
 use Piwik\Timer;
 
+/**
+ * @group DataTableTest
+ */
 class DataTableTest extends \PHPUnit_Framework_TestCase
 {
     /**
diff --git a/tests/resources/access-logs/fake_logs_custom_iis.log b/tests/resources/access-logs/fake_logs_custom_iis.log
new file mode 100644
index 0000000000000000000000000000000000000000..d7ff476a6c5cff22e345e748c34e3c70fbd73aa5
--- /dev/null
+++ b/tests/resources/access-logs/fake_logs_custom_iis.log
@@ -0,0 +1,8 @@
+#Software: IIS Advanced Logging Module
+#Version: 1.0
+#Start-Date: 2014-11-18 00:00:00.128
+#Fields:  date-local time-local s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) cs(Host) sc-status sc-substatus sc-win32-status TimeTakenMS
+2012-08-15 17:00:00.363 10.10.28.140 GET /Products/theProduct - 80 user1 "70.95.0.0" "Mozilla/5.0 (Linux; Android 4.4.4; SM-G900V Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.59 Mobile Safari/537.36" "http://example.com/Search/SearchResults.pg?informationRecipient.languageCode.c=en" "xzy.example.com" 200 0 0 109
+2012-08-15 17:00:00.660 10.10.28.140 GET /Topic/hw43061 - 80 user1 "70.95.32.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36" - "example.hello.com" 301 0 0 0
+2012-08-15 17:00:00.675 10.10.28.140 GET /hello/world/6,681965 - 80 - "173.5.0.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36" - "hello.example.com" 404 0 0 359
+2012-08-15 17:30:00.675 10.10.28.140 GET /hello/from/another/world/6,681965 - 80 user2 "173.5.0.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36" - "hello.example.com" 200 0 0 359
diff --git a/tests/resources/access-logs/fake_logs_netscaler.log b/tests/resources/access-logs/fake_logs_netscaler.log
new file mode 100644
index 0000000000000000000000000000000000000000..17035db670f3e37384f83076db7408ba60c85925
--- /dev/null
+++ b/tests/resources/access-logs/fake_logs_netscaler.log
@@ -0,0 +1,6 @@
+#Version: 1.0
+#Software: Netscaler Web Logging(NSWL)
+#Date: 2014-02-18 11:55:13
+#Fields: date time c-ip cs-username sc-servicename s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs-bytes sc-bytes time-taken cs-version cs(User-Agent) cs(Cookie) cs(Referer)
+2012-08-16 11:55:13 172.20.1.0 - HTTP 192.168.6.254 8080 GET /Citrix/XenApp/Wan/auth/login.jsp - 302 247 355 0 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) - -
+2012-08-16 11:59:13 172.20.1.0 - HTTP 192.168.6.254 8080 GET /Citrix/XenApp/Wan/auth/silentDetection.jsp - 200 310 5609 0 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+5.1;+Trident/4.0;+.NET+CLR+1.1.4322;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.04506.648;+.NET+CLR+3.5.21022) JSESSIONID=7BBF2F11B80261B27D23010421412323 -
\ No newline at end of file