Index: /home/dnaber/workspace/JOSM/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- /home/dnaber/workspace/JOSM/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 631)
+++ /home/dnaber/workspace/JOSM/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(working copy)
@@ -224,10 +224,17 @@
 			polygon.addPoint(p.x,p.y);
 		}
 
-		g.setColor( w.selected ?
-				selectedColor : coloura);
-
-		g.fillPolygon(polygon);
+		boolean isVisible = true;
+		if (polygon.getBounds().x > nc.getWidth()) isVisible = false;
+		else if (polygon.getBounds().y > nc.getHeight()) isVisible = false;
+		else if (polygon.getBounds().x + polygon.getBounds().width < 0) isVisible = false;
+		else if (polygon.getBounds().y + polygon.getBounds().height < 0) isVisible = false;
+		
+		if (isVisible) {
+			g.setColor( w.selected ?
+					selectedColor : coloura);
+			g.fillPolygon(polygon);
+		}
 	}
 
 	// NEW
