diff --git a/lib/spack/spack/provider_index.py b/lib/spack/spack/provider_index.py
index 2be48b43c1d2544a0b10c1ab16282b8f63176e6e..d7f23794868d011b3d6f2c4860b3cac98eeb1b9f 100644
--- a/lib/spack/spack/provider_index.py
+++ b/lib/spack/spack/provider_index.py
@@ -232,7 +232,8 @@ def merge(self, other):
                     spdict[provided_spec] = opdict[provided_spec]
                     continue
 
-                spdict[provided_spec] += opdict[provided_spec]
+                spdict[provided_spec] = \
+                    spdict[provided_spec].union(opdict[provided_spec])
 
     def remove_provider(self, pkg_name):
         """Remove a provider from the ProviderIndex."""