Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 32038)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 32039)
@@ -326,5 +326,5 @@
     }
     for (MapillaryAbstractImage imageAbs : this.data.getImages()) {
-      if (imageAbs.isVisible()) {
+      if (imageAbs.isVisible() && Main.map.mapView.contains(Main.map.mapView.getPoint(imageAbs.getLatLon()))) {
         final Point p = mv.getPoint(imageAbs.getLatLon());
         ImageIcon icon = MapillaryPlugin.MAP_ICON;
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySequence.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySequence.java	(revision 32038)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySequence.java	(revision 32039)
@@ -4,4 +4,5 @@
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
@@ -30,5 +31,5 @@
    */
   public MapillarySequence() {
-    this.images = new ArrayList<>();
+    this.images = new CopyOnWriteArrayList<>();
   }
 
@@ -40,5 +41,5 @@
    */
   public MapillarySequence(String key, long createdAt) {
-    this.images = new ArrayList<>();
+    this.images = new CopyOnWriteArrayList<>();
     this.key = key;
     this.createdAt = createdAt;
