Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 11028)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 11029)
@@ -29,4 +29,5 @@
 import java.util.TreeSet;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.swing.AbstractButton;
@@ -215,5 +216,5 @@
     private final transient List<Layer> nonChangedLayers = new ArrayList<>();
     private int lastViewID;
-    private boolean paintPreferencesChanged = true;
+    private AtomicBoolean paintPreferencesChanged = new AtomicBoolean(true);
     private Rectangle lastClipBounds = new Rectangle();
     private transient MapMover mapMover;
@@ -466,11 +467,5 @@
         }
 
-        boolean canUseBuffer;
-
-        synchronized (this) {
-            canUseBuffer = !paintPreferencesChanged;
-            paintPreferencesChanged = false;
-        }
-        canUseBuffer = canUseBuffer
+        boolean canUseBuffer = !paintPreferencesChanged.getAndSet(false)
                 && nonChangedLayers.size() <= nonChangedLayersCount
                 && lastViewID == getViewID()
@@ -711,7 +706,5 @@
     @Override
     public void preferenceChanged(PreferenceChangeEvent e) {
-        synchronized (this) {
-            paintPreferencesChanged = true;
-        }
+        paintPreferencesChanged.set(true);
     }
 
