diff --git a/lib/rubocop/cop/cop.rb b/lib/rubocop/cop/cop.rb
index <HASH>..<HASH> 100644
--- a/lib/rubocop/cop/cop.rb
+++ b/lib/rubocop/cop/cop.rb
@@ -57,13 +57,15 @@ module Rubocop
         sexp.each do |elem|
           if Array === elem
             if elem[0] == sym
-              parents << sexp
+              parents << sexp unless parents.include?(sexp)
               elem = elem[1..-1]
             end
-            each_parent_of(sym, elem) { |parent| parents << parent }
+            each_parent_of(sym, elem) do |parent|
+              parents << parent unless parents.include?(parent)
+            end
           end
         end
-        parents.uniq.each { |parent| yield parent }
+        parents.each { |parent| yield parent }
       end
 
       def each(sym, sexp)
Added elements to array only if they're not already in there instead of calling uniq afterwards.