Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 10213)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyAction.java	(revision 10214)
@@ -91,5 +91,5 @@
     protected String oldModeHelpText;
 
-    private final AbstractMapViewPaintable temporaryLayer = new AbstractMapViewPaintable() {
+    private final transient AbstractMapViewPaintable temporaryLayer = new AbstractMapViewPaintable() {
         @Override
         public void paint(Graphics2D g, MapView mv, Bounds bbox) {
Index: trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 10213)
+++ trunk/src/org/openstreetmap/josm/data/validation/OsmValidator.java	(revision 10214)
@@ -206,5 +206,5 @@
     }
 
-    public static void initializeErrorLayer() {
+    public static synchronized void initializeErrorLayer() {
         if (!Main.pref.getBoolean(ValidatorPreference.PREF_LAYER, true))
             return;
Index: trunk/src/org/openstreetmap/josm/data/validation/util/Entities.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/util/Entities.java	(revision 10213)
+++ trunk/src/org/openstreetmap/josm/data/validation/util/Entities.java	(revision 10214)
@@ -391,11 +391,5 @@
                         }
                     } else { // escaped value content is an entity name
-                        if (mapNameToValue == null) {
-                            mapNameToValue = new HashMap<>();
-                            for (String[] pair : ARRAY) {
-                                mapNameToValue.put(pair[0], pair[1]);
-                            }
-                        }
-                        String value = mapNameToValue.get(entityContent);
+                        String value = getMapNameToValue().get(entityContent);
                         entityValue = value == null ? -1 : Integer.parseInt(value);
                     }
@@ -414,3 +408,13 @@
         return res.toString();
     }
+
+    private static synchronized Map<String, String> getMapNameToValue() {
+        if (mapNameToValue == null) {
+            mapNameToValue = new HashMap<>();
+            for (String[] pair : ARRAY) {
+                mapNameToValue.put(pair[0], pair[1]);
+            }
+        }
+        return mapNameToValue;
+    }
 }
Index: trunk/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java	(revision 10213)
+++ trunk/src/org/openstreetmap/josm/tools/bugreport/BugReportExceptionHandler.java	(revision 10214)
@@ -166,5 +166,5 @@
      * @param e the exception
      */
-    public static void handleException(final Throwable e) {
+    public static synchronized void handleException(final Throwable e) {
         if (handlingInProgress || suppressExceptionDialogs)
             return;                  // we do not handle secondary exceptions, this gets too messy
