diff --git a/lib/ddplugin/registry.rb b/lib/ddplugin/registry.rb
index <HASH>..<HASH> 100644
--- a/lib/ddplugin/registry.rb
+++ b/lib/ddplugin/registry.rb
@@ -64,7 +64,7 @@ module DDPlugin
     # @return [Enumerable<Class>] A collection of registered classes
     def find_all(root_class)
       @identifiers_to_classes[root_class] ||= {}
-      @identifiers_to_classes[root_class].values
+      @identifiers_to_classes[root_class].values.uniq
     end
   end
 end
diff --git a/test/test_plugin.rb b/test/test_plugin.rb
index <HASH>..<HASH> 100644
--- a/test/test_plugin.rb
+++ b/test/test_plugin.rb
@@ -73,4 +73,17 @@ class DDPlugin::PluginTest < Minitest::Test
 
     assert_equal [klass1, klass2], AllSample.all
   end
+
+  def test_all_with_multiple_identifiers
+    parent_class = Class.new { extend DDPlugin::Plugin }
+
+    klass1 = Class.new(parent_class)
+    klass1.identifier :one_a
+    klass1.identifier :one_b
+
+    klass2 = Class.new(parent_class)
+    klass2.identifier :two
+
+    assert_equal [klass1, klass2], parent_class.all
+  end
 end
Prevent #find_all from returning duplicates