Index: trunk/src/org/openstreetmap/josm/gui/MapView.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 3143)
+++ trunk/src/org/openstreetmap/josm/gui/MapView.java	(revision 3144)
@@ -187,4 +187,5 @@
     private int lastViewID;
     private boolean paintPreferencesChanged = true;
+    private Rectangle lastClipBounds = new Rectangle();
 
     public MapView() {
@@ -477,5 +478,6 @@
         }
 
-        boolean canUseBuffer = !paintPreferencesChanged && nonChangedLayers.size() <= nonChangedLayersCount && lastViewID == getViewID();
+        boolean canUseBuffer = !paintPreferencesChanged && nonChangedLayers.size() <= nonChangedLayersCount &&
+        lastViewID == getViewID() && lastClipBounds.contains(g.getClipBounds());
         if (canUseBuffer) {
             for (int i=0; i<nonChangedLayers.size(); i++) {
@@ -524,4 +526,5 @@
         lastViewID = getViewID();
         paintPreferencesChanged = false;
+        lastClipBounds = g.getClipBounds();
 
         tempG.drawImage(nonChangedLayersBuffer, 0, 0, null);
