Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java	(revision 8738)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/relations/MultipolygonCache.java	(revision 8739)
@@ -4,8 +4,8 @@
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.openstreetmap.josm.Main;
@@ -47,5 +47,5 @@
 
     private MultipolygonCache() {
-        this.cache = new HashMap<>();
+        this.cache = new ConcurrentHashMap<>(); // see ticket 11833
         this.selectedPolyData = new ArrayList<>();
         Main.addProjectionChangeListener(this);
@@ -84,9 +84,9 @@
             Map<DataSet, Map<Relation, Multipolygon>> map1 = cache.get(nc);
             if (map1 == null) {
-                cache.put(nc, map1 = new HashMap<>());
+                cache.put(nc, map1 = new ConcurrentHashMap<>());
             }
             Map<Relation, Multipolygon> map2 = map1.get(r.getDataSet());
             if (map2 == null) {
-                map1.put(r.getDataSet(), map2 = new HashMap<>());
+                map1.put(r.getDataSet(), map2 = new ConcurrentHashMap<>());
             }
             multipolygon = map2.get(r);
