diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java b/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java
index 20547c6f7c37799fa26f51667787a8f51522b017..42b1dcd442b82dc640fc03e178e6e49735d56c01 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java
@@ -23,7 +23,6 @@ import java.util.function.Predicate;
 
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableListMultimap;
-import com.google.common.collect.ImmutableSetMultimap;
 import com.google.common.collect.Multimap;
 import com.google.gson.annotations.SerializedName;
 
@@ -279,7 +278,7 @@ public final class HazardModel implements Iterable<SourceTree> {
 
     private Multimap<SourceType, RuptureSet<? extends Source>> ruptureSetMap;
     private Multimap<SourceType, Feature> featureMap;
-    private ImmutableSetMultimap.Builder<SourceType, RuptureSet<? extends Source>> ruptureMapBuilder;
+    private ImmutableListMultimap.Builder<SourceType, RuptureSet<? extends Source>> ruptureMapBuilder;
     private ImmutableListMultimap.Builder<SourceType, Feature> featureMapBuilder;
     private Set<TectonicSetting> settings = EnumSet.noneOf(TectonicSetting.class);
     private Map<TectonicSetting, MapRegion> mapRegionMap = new EnumMap<>(TectonicSetting.class);
@@ -295,7 +294,7 @@ public final class HazardModel implements Iterable<SourceTree> {
 
     private Builder(Path root) {
       this.root = checkNotNull(root);
-      ruptureMapBuilder = ImmutableSetMultimap.builder();
+      ruptureMapBuilder = ImmutableListMultimap.builder();
       featureMapBuilder = ImmutableListMultimap.builder();
       treesMapBuilder = ImmutableListMultimap.builder();
     }
@@ -348,8 +347,12 @@ public final class HazardModel implements Iterable<SourceTree> {
       return this;
     }
 
-    private Builder addRuptureSet(RuptureSet<? extends Source> source) {
-      ruptureMapBuilder.put(source.type(), source);
+    private void addRuptureSetsFromTree(SourceTree tree) {
+      tree.forEach(branch -> addRuptureSet(branch.value()));
+    }
+
+    private Builder addRuptureSet(RuptureSet<? extends Source> ruptures) {
+      ruptureMapBuilder.put(ruptures.type(), ruptures);
       return this;
     }
 
@@ -383,10 +386,6 @@ public final class HazardModel implements Iterable<SourceTree> {
       validateState(ID);
       return new HazardModel(this);
     }
-
-    private void addRuptureSetsFromTree(SourceTree tree) {
-      tree.forEach(branch -> addRuptureSet(branch.value()));
-    }
   }
 
   static final class Info {