diff --git a/.gitignore b/.gitignore
index 3b5e5a59abdb92aed4015662dd418cb74c7d6187..656b578fd6ad65f5dcb9930efebe2e086a0163b6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -34,6 +34,7 @@ vendor/
 tests/javascript/enable_sqlite
 tests/javascript/enable_sqlite
 tests/javascript/unittest.dbf
+tests/javascript/unittest2.dbf
 tests/lib/geoip-files/*.dat*
 tests/lib/xhprof*
 tests/PHPUnit/Integration/processed/
diff --git a/tests/javascript/index.php b/tests/javascript/index.php
index 40cff99a079cf8374fdcc24f6e2110e6fb8c2837..1988c352a0bb2fe5f295375e23a42c93fb61beed 100644
--- a/tests/javascript/index.php
+++ b/tests/javascript/index.php
@@ -2970,7 +2970,8 @@ if ($sqlite) {
         resetTracker(tracker, token6);
         tracker.enableTrackOnlyVisibleContent(false, 0);
         tracker.trackAllContentImpressions();
-        strictEqual(tracker.getTrackedContentImpressions().length, 7, 'should still track all impressions even if visible enabled');
+        expected = [contentBlocks[7], contentBlocks[6], contentBlocks[5], contentBlocks[1], contentBlocks[4], contentBlocks[3], contentBlocks[2]];
+        propEqual(tracker.getTrackedContentImpressions().length, 7, 'should still track all impressions even if visible enabled');
 
         var token7 = '7' + token;
         resetTracker(tracker, token7);
diff --git a/tests/javascript/piwik.php b/tests/javascript/piwik.php
index d8f1e1c7ef66f3391b21b47c169b9a91cfb15a7e..df7f606ef248d4fe74363fc938fe23238e54f3ea 100644
--- a/tests/javascript/piwik.php
+++ b/tests/javascript/piwik.php
@@ -24,16 +24,27 @@ if (!class_exists('SQLite')) {
 	exit;
 }
 
-$sqlite = new SQLite( 'unittest.dbf' );
+$sqlite = new SQLite( 'unittest2.dbf' );
 if (!$sqlite) {
 	header("HTTP/1.0 500 Internal Server Error");
 	exit;
 }
 
-if (filesize(dirname(__FILE__).'/unittest.dbf') == 0)
+function getNextRequestId($sqlite, $token)
+{
+    $requests = $sqlite->query_array("SELECT uri FROM requests WHERE token = \"$token\"");
+
+    if (empty($requests)) {
+        return 1;
+    }
+
+    return count($requests) + 1;
+}
+
+if (filesize(dirname(__FILE__).'/unittest2.dbf') == 0)
 {
 	try {
-		$query = @$sqlite->exec( 'CREATE TABLE requests (token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT)' );
+		$query = @$sqlite->exec( 'CREATE TABLE requests (requestid TEXT, token TEXT, ip TEXT, ts TEXT, uri TEXT, referer TEXT, ua TEXT)' );
 	} catch (Exception $e) {
 		header("HTTP/1.0 500 Internal Server Error");
 		exit;
@@ -51,7 +62,9 @@ function logRequest($sqlite, $uri, $data) {
 
     $token = isset($data['token']) ? $data['token'] : '';
 
-    $query = $sqlite->exec("INSERT INTO requests (token, ip, ts, uri, referer, ua) VALUES (\"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referrer\", \"$ua\")");
+    $id = getNextRequestId($sqlite, $token);
+
+    $query = $sqlite->exec("INSERT INTO requests (requestid, token, ip, ts, uri, referer, ua) VALUES (\"$id\", \"$token\", \"$ip\", \"$ts\", \"$uri\", \"$referrer\", \"$ua\")");
 
     return $query;
 }
@@ -65,7 +78,7 @@ if (isset($_GET['requests'])) {
 	sleep(5);
 
 //	$result = $sqlite->query_array("SELECT uri FROM requests");
-	$result = @$sqlite->query_array("SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\" ORDER BY ts ASC");
+	$result = @$sqlite->query_array("SELECT uri FROM requests WHERE token = \"$token\" AND ua = \"$ua\" ORDER BY ts ASC, requestid ASC");
 	if ($result !== false) {
 		$nofRows = count($result);
 		echo "<span>$nofRows</span>\n";