diff --git a/scheduler/drone_utility.py b/scheduler/drone_utility.py
index a71597a..9df8a02 100755
--- a/scheduler/drone_utility.py
+++ b/scheduler/drone_utility.py
@@ -525,8 +525,8 @@
         autoserv_processes, extra_warnings = self._filter_proc_infos(
                 proc_infos, 'autoserv')
         warnings += extra_warnings
-        parse_processes, extra_warnings = self._filter_proc_infos(
-                proc_infos, 'parse')
+        parse_processes, extra_warnings = self._filter_proc_infos(proc_infos,
+                                                                  'parse')
         warnings += extra_warnings
         site_parse_processes, extra_warnings = self._filter_proc_infos(
                 proc_infos, 'site_parse')
@@ -576,15 +576,24 @@
         if not self._check_mark:
             return proc_infos, []
 
+        if self._use_pool:
+            dark_marks = self._pool.map(
+                    _process_has_dark_mark,
+                    [info['pid'] for info in proc_infos]
+            )
+        else:
+            dark_marks = [_process_has_dark_mark(info['pid'])
+                          for info in proc_infos]
+
         marked_proc_infos = []
-        unmarked_proc_infos = []
-        for info in proc_infos:
-            if _process_has_dark_mark(info['pid']):
+        warnings = []
+        for marked, info in itertools.izip(dark_marks, proc_infos):
+            if marked:
                 marked_proc_infos.append(info)
             else:
-                unmarked_proc_infos.append(info)
-        warnings = ['%(comm)s process pid %(pid)s has no dark mark; ignoring.' %
-                    info for info in unmarked_proc_infos]
+                warnings.append(
+                        '%(comm)s process pid %(pid)s has no dark mark; '
+                        'ignoring.' % info)
         return marked_proc_infos, warnings
 
 
@@ -625,7 +634,6 @@
 def return_data(data):
     print pickle.dumps(data)
 
-
 def _process_has_dark_mark(pid):
     """Checks if a process was launched earlier by drone_utility.
 
diff --git a/scheduler/drone_utility_unittest.py b/scheduler/drone_utility_unittest.py
index 83ebc3d..7a0c38c 100755
--- a/scheduler/drone_utility_unittest.py
+++ b/scheduler/drone_utility_unittest.py
@@ -112,7 +112,9 @@
     def test_respect_dark_mark(self):
         """When check_mark=True, dark mark check is performed and respected.
 
-        Only filtered processes with dark mark should be returned.
+        Only filtered processes with dark mark should be returned. We only test
+        this with use_pool=False because mocking out _process_has_dark_mark with
+        multiprocessing.Pool is hard.
         """
         self.maxDiff = None
         process_refresher = drone_utility.ProcessRefresher(check_mark=True)
