diff --git a/modules/tracker/tracker.install b/modules/tracker/tracker.install
index 9967b9d..5cdd190 100644
--- a/modules/tracker/tracker.install
+++ b/modules/tracker/tracker.install
@@ -11,6 +11,7 @@
 function tracker_uninstall() {
   variable_del('tracker_index_nid');
   variable_del('tracker_batch_size');
+  variable_del('tracker_page_rows_count');
 }
 
 /**
diff --git a/modules/tracker/tracker.pages.inc b/modules/tracker/tracker.pages.inc
index e505515..06b54ed 100644
--- a/modules/tracker/tracker.pages.inc
+++ b/modules/tracker/tracker.pages.inc
@@ -16,9 +16,12 @@
  * the render array that will be used to render the page.
  */
 function tracker_page($account = NULL, $set_title = FALSE) {
-  $query = db_select('node', 'n');
+  $query = db_select('node', 'n', array('target' => 'slave'))
+    ->extend('PagerDefault');
 
+  // Join comment statistic table to show "Replies count"
   $query->innerJoin('node_comment_statistics', 'l', 'n.nid = l.nid');
+  // Join users table to show "Author"
   $query->innerJoin('users', 'u', 'n.uid = u.uid');
 
   if ($account) {
@@ -36,27 +39,19 @@ function tracker_page($account = NULL, $set_title = FALSE) {
     $query->innerJoin('tracker_node', 't', 'n.nid = t.nid');
   }
 
-  $query->addField('t', 'changed', 'last_activity');
   $nodes = $query->addTag('node_access')
-    ->fields('n', array('nid', 'title', 'type', 'changed'))
+    ->fields('n', array('nid', 'title', 'type'))
     ->fields('t', array('nid', 'changed'))
     ->fields('l', array('comment_count'))
+    ->fields('u', array('name', 'uid'))
     ->condition('t.published', 1)
     ->orderBy('t.changed', 'DESC')
-    ->extend('PagerDefault')
     ->limit(variable_get('tracker_page_rows_count', 25))
     ->execute()
     ->fetchAllAssoc('nid');
 
   $rows = array();
   if (!empty($nodes)) {
-    // Now, get the data and put into the placeholder array.
-    $result = db_query('SELECT n.nid, n.title, n.type, n.changed, n.uid, u.name, l.comment_count FROM {node} n INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {users} u ON n.uid = u.uid WHERE n.nid IN (:nids)', array(':nids' => array_keys($nodes)), array('target' => 'slave'));
-    foreach ($result as $node) {
-      $node->last_activity = $nodes[$node->nid]->changed;
-      $nodes[$node->nid] = $node;
-    }
-
     // Display the data.
     foreach ($nodes as $node) {
       // Determine the number of comments.
@@ -75,7 +70,7 @@ function tracker_page($account = NULL, $set_title = FALSE) {
         'title' => array('data' => l($node->title, 'node/' . $node->nid) . ' ' . theme('mark', array('type' => node_mark($node->nid, $node->changed)))),
         'author' => array('data' => theme('username', array('account' => $node))),
         'replies' => array('class' => array('replies'), 'data' => $comments),
-        'last updated' => array('data' => t('!time ago', array('!time' => format_interval(REQUEST_TIME - $node->last_activity)))),
+        'last updated' => array('data' => t('!time ago', array('!time' => format_interval(REQUEST_TIME - $node->changed)))),
       );
 
       // Adds extra RDFa markup to the $row array if the RDF module is enabled.
@@ -101,9 +96,9 @@ function tracker_page($account = NULL, $set_title = FALSE) {
         // and apply 'changed' in addition to 'last_activity'.  If there are
         // comments present, we cannot infer whether the node itself was
         // modified or a comment was posted, so we use only 'last_activity'.
-        $mapping_last_activity = rdf_rdfa_attributes($mapping['last_activity'], $node->last_activity);
+        $mapping_last_activity = rdf_rdfa_attributes($mapping['last_activity'], $node->changed);
         if ($node->comment_count == 0) {
-          $mapping_changed = rdf_rdfa_attributes($mapping['changed'], $node->last_activity);
+          $mapping_changed = rdf_rdfa_attributes($mapping['changed'], $node->changed);
           $mapping_last_activity['property'] = array_merge($mapping_last_activity['property'], $mapping_changed['property']);
         }
         $row['last updated'] += $mapping_last_activity;
diff --git a/modules/tracker/tracker.test b/modules/tracker/tracker.test
index 66ebb84..47521ba 100644
--- a/modules/tracker/tracker.test
+++ b/modules/tracker/tracker.test
@@ -149,10 +149,27 @@ class TrackerTest extends DrupalWebTestCase {
   function testTrackerNewComments() {
     $this->drupalLogin($this->user);
 
-    $node = $this->drupalCreateNode(array(
-      'comment' => 2,
-      'title' => array(LANGUAGE_NONE => array(array('value' => $this->randomName(8)))),
-    ));
+    $title = $this->randomName();
+    // We have to create node via UI to provide different 'changed' value, as node module uses REQUEST_TIME
+    $this->drupalPost('node/add/page', array('title' => $title), 'Save');
+
+    $nid = db_query('SELECT nid FROM {node} WHERE title = :title', array(':title' => $title))
+      ->fetchField();
+    $node = node_load($nid);
+    // Open comments for first node
+    $node->comment = 2;
+    node_save($node);
+
+    $title = $this->randomName();
+    $this->drupalPost('node/add/page', array('title' => $title), 'Save');
+
+    $nid = db_query('SELECT nid FROM {node} WHERE title = :title', array(':title' => $title))
+      ->fetchField();
+    $secondNode = node_load($nid);
+
+    $this->drupalGet('tracker');
+    // Verify that second node is first in tracker table
+    $this->assertFieldByXPath('//tbody/tr[1]/td/a[text()="' . $secondNode->title . '"]', NULL, 'Last added node is first in the list.');
 
     // Add a comment to the page.
     $comment = array(
@@ -162,6 +179,10 @@ class TrackerTest extends DrupalWebTestCase {
     // The new comment is automatically viewed by the current user.
     $this->drupalPost('comment/reply/' . $node->nid, $comment, t('Save'));
 
+    $this->drupalGet('tracker');
+    // After first node got a new comment it should be moved to the top of the list.
+    $this->assertFieldByXPath('//tbody/tr[1]/td/a[text()="' . $node->title . '"]', NULL, 'Tracker changed value is updated on node commenting');
+
     $this->drupalLogin($this->other_user);
     $this->drupalGet('tracker');
     $this->assertText('1 new', 'New comments are counted on the tracker listing pages.');
