diff --git a/server/cros/dynamic_suite_fakes.py b/server/cros/dynamic_suite_fakes.py
index fd396f5..6ba07c76 100644
--- a/server/cros/dynamic_suite_fakes.py
+++ b/server/cros/dynamic_suite_fakes.py
@@ -64,18 +64,21 @@
         if hostname:
             self.entry['host'] = {'hostname': hostname}
 
+
     def __repr__(self):
         return '%s\t%s\t%s: %s' % (self.status, self.test_name, self.reason,
                                    self.hostname)
 
+
     def equals_record(self, status):
         """Compares this object to a recorded status."""
         if 'aborted' in self.entry and self.entry['aborted']:
-            return status == 'ABORT'
+            return status._status == 'ABORT'
         return (self.status == status._status and
                 self.test_name == status._test_name and
                 self.reason == status._reason)
 
+
     def equals_hostname_record(self, status):
         """Compares this object to a recorded status.
 
diff --git a/server/cros/job_status.py b/server/cros/job_status.py
index 8a05e90..9edadea 100644
--- a/server/cros/job_status.py
+++ b/server/cros/job_status.py
@@ -150,12 +150,13 @@
     @param jobs: a list of Job objects, as defined in server/frontend.py.
     @return a list of Statuses, one per test.
     """
-    while jobs:
-        for job in list(jobs):
+    local_jobs = list(jobs)
+    while local_jobs:
+        for job in list(local_jobs):
             if not afe.get_jobs(id=job.id, finished=True):
                 continue
 
-            jobs.remove(job)
+            local_jobs.remove(job)
 
             entries = afe.run('get_host_queue_entries', job=job.id)
             if reduce(_collate_aborted, entries, False):
@@ -166,6 +167,7 @@
                     yield Status(s.status, s.test_name, s.reason,
                                  s.test_started_time,
                                  s.test_finished_time)
+
         time.sleep(5)
 
 
