diff --git a/server/cros/dynamic_suite/suite.py b/server/cros/dynamic_suite/suite.py
index b9bca4f..fbca315 100644
--- a/server/cros/dynamic_suite/suite.py
+++ b/server/cros/dynamic_suite/suite.py
@@ -700,7 +700,7 @@
     @return a callable that takes a ControlData and looks for |name| in that
             ControlData object's suite member.
     """
-    return lambda t: name in t.suite_tag_parts
+    return suite_common.name_in_tag_predicate(name)
 
 
 def create_fs_getter(autotest_dir):
@@ -1322,7 +1322,8 @@
     find_and_parse_tests = _deprecated_suite_method(find_and_parse_tests)
     find_possible_tests = _deprecated_suite_method(find_possible_tests)
     create_fs_getter = _deprecated_suite_method(create_fs_getter)
-    name_in_tag_predicate = _deprecated_suite_method(name_in_tag_predicate)
+    name_in_tag_predicate = _deprecated_suite_method(
+            suite_common.name_in_tag_predicate)
     name_in_tag_similarity_predicate = _deprecated_suite_method(
             name_in_tag_similarity_predicate)
     test_name_equals_predicate = _deprecated_suite_method(
@@ -1409,7 +1410,7 @@
             build = suite_common.get_test_source_build(builds, **dargs)
             cf_getter = _create_ds_getter(build, devserver)
 
-        return cls([name_in_tag_predicate(name)],
+        return cls([suite_common.name_in_tag_predicate(name)],
                    name, builds, board, cf_getter, **dargs)
 
 
diff --git a/server/cros/dynamic_suite/suite_common.py b/server/cros/dynamic_suite/suite_common.py
index 88b3f70..1430039 100644
--- a/server/cros/dynamic_suite/suite_common.py
+++ b/server/cros/dynamic_suite/suite_common.py
@@ -383,3 +383,16 @@
                control_data.ControlData.get_test_time_index(t.time),
                reverse=True)
     return tests
+
+
+def name_in_tag_predicate(name):
+    """Returns predicate that takes a control file and looks for |name|.
+
+    Builds a predicate that takes in a parsed control file (a ControlData)
+    and returns True if the SUITE tag is present and contains |name|.
+
+    @param name: the suite name to base the predicate on.
+    @return a callable that takes a ControlData and looks for |name| in that
+            ControlData object's suite member.
+    """
+    return lambda t: name in t.suite_tag_parts
diff --git a/venv/skylab_suite/cros_suite.py b/venv/skylab_suite/cros_suite.py
index 4c73401..d13554b 100644
--- a/venv/skylab_suite/cros_suite.py
+++ b/venv/skylab_suite/cros_suite.py
@@ -404,7 +404,8 @@
                 self.test_source_build, self.ds)
         tests = suite_common.retrieve_for_suite(
                 cf_getter, self.suite_name)
-        return suite_common.filter_tests(tests)
+        return suite_common.filter_tests(
+                tests, suite_common.name_in_tag_predicate(self.suite_name))
 
     def _get_available_bots(self):
         """Get available bots for suites."""
