diff --git a/app/models/ci/runner.rb b/app/models/ci/runner.rb
index 9bd4d3ab0a5ce484d02bac9c81a339beebbdf5a9..bb1cffdcae645320ba1dd58f614eb0628b0cf6ea 100644
--- a/app/models/ci/runner.rb
+++ b/app/models/ci/runner.rb
@@ -99,9 +99,7 @@ module Ci
     end
 
     def can_pick?(build)
-      available_for?(build.project) &&
-        run_untagged_or_has_tags?(build) &&
-        accepting_tags?(build.tag_list)
+      available_for?(build.project) && accepting_tags?(build)
     end
 
     def only_for?(project)
@@ -129,12 +127,8 @@ module Ci
       !locked? || projects.exists?(id: project.id)
     end
 
-    def run_untagged_or_has_tags?(build)
-      run_untagged? || build.has_tags?
-    end
-
-    def accepting_tags?(target_tags)
-      (target_tags - tag_list).empty?
+    def accepting_tags?(build)
+      (run_untagged? || build.has_tags?) && (build.tag_list - tag_list).empty?
     end
   end
 end