diff --git a/pift.cron.inc b/pift.cron.inc
index 3121218..e3d3321 100644
--- a/pift.cron.inc
+++ b/pift.cron.inc
@@ -16,47 +16,47 @@ function pift_cron_retest() {
     return;
   }
 
-  // TODO:  Refactor to use nid column from pift_test, so that this can be enabled
-
   $api_versions = pift_core_api_versions();
   $sids = variable_get('pift_status', array());
 
   // Only attempt query if both values are not empty.
   if ($api_versions && $sids) {
-    $retest_time = time() - PIFT_RETEST;
-
-    // Loop over 'ON' clause to remove an 'OR' which should be more efficient.
-    foreach (array('u.nid = pi.nid', 'cu.nid = pi.nid') as $clause) {
-      db_query("UPDATE {pift_test}
-                SET status = %d
-                WHERE type = %d
-                AND id IN (
-                  SELECT f.fid
-                  FROM {files} f
-                  LEFT JOIN {upload} u
-                    ON f.fid = u.fid
-                  LEFT JOIN {comment_upload} cu
-                    ON f.fid = cu.fid
-
-                  JOIN {project_issues} pi
-                    ON " . $clause . "
-                  JOIN {pift_project} p
-                    ON pi.pid = p.pid
-                  JOIN {project_release_nodes} r
-                    ON pi.rid = r.nid
-
-                  JOIN {node} n
-                    ON r.nid = n.nid
-                  JOIN {term_node} t
-                    ON (n.vid = t.vid AND t.tid IN (" . db_placeholders($api_versions, 'int') . "))
-
-                  WHERE pi.sid IN (" . db_placeholders($sids, 'int') . ")
-                )
-                AND status > %d
-                AND last_tested < %d",
-                array_merge(array(PIFT_STATUS_QUEUE, PIFT_TYPE_FILE), $api_versions, $sids,
-                            array(PIFT_STATUS_SENT, $retest_time)));
+    //$retest_time = time() - PIFT_RETEST;
+    $retest_time = 1;
+
+    // Get last file test from each nid which is in 'needs review' or 'rtbc'.
+    $result = db_query(
+      "SELECT max(test_id) as test_id
+        FROM {pift_test} pt
+        JOIN {project_issues} pi ON pt.nid = pi.nid
+        JOIN {project_release_nodes} prn ON pi.rid = prn.nid
+        JOIN {node} n ON prn.nid = n.nid
+        JOIN {term_node} t
+          ON (n.vid = t.vid and t.tid in (" . db_placeholders($api_versions, 'int') . "))
+        WHERE pt.type = %d
+          AND pi.sid IN (" . db_placeholders($sids, 'int') . ")
+        GROUP BY pt.nid",
+      array_merge($api_versions, (array) PIFT_TYPE_FILE, $sids)
+    );
+    $retest_candidates = array();
+    while ($data = db_fetch_array($result)) {
+      $retest_candidates[] = $data['test_id'];
     }
+
+    // Update status for tests with final results (Passed or Failed)
+    // and which have not been tested in the retest period.
+    db_query(
+      "Update {pift_test} set status = %d
+        WHERE status > %d
+          AND last_tested < %d
+          AND test_id IN (" . db_placeholders($retest_candidates, 'int') . ")
+        ORDER BY test_id ASC
+        LIMIT 50",
+      array_merge((array) PIFT_STATUS_QUEUE, (array) PIFT_STATUS_SENT, (array) $retest_time, $retest_candidates)
+    );
+
+    // TODO:  Remove 'Limit 50' above and DSM() before enabling in pift.module!
+    drupal_set_message("Re-Tests Queued: " . db_affected_rows());
   }
 }
 
diff --git a/pift.drush.inc b/pift.drush.inc
index dd68511..bd13a04 100644
--- a/pift.drush.inc
+++ b/pift.drush.inc
@@ -26,7 +26,7 @@ function drush_pift_cron() {
   module_load_include('cron.inc', 'pift');
 
   // Requeue all tests that have passed the re-test interval.
-//   pift_cron_retest(); TODO fix query.
+  pift_cron_retest();
 
   // Send a batch of queued tests.
   pift_cron_queue_batch();
