Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java	(revision 31988)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java	(revision 31989)
@@ -76,4 +76,5 @@
    * @param image  The image to be added.
    * @param update Whether the map must be updated or not.
+   * @throws NullPointerException if parameter <code>image</code> is <code>null</code>
    */
   public synchronized void add(MapillaryAbstractImage image, boolean update) {
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 31988)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 31989)
@@ -246,5 +246,7 @@
       img.setVisible(visible);
     }
-    MapillaryFilterDialog.getInstance().refresh();
+    if (Main.map != null) {
+      MapillaryFilterDialog.getInstance().refresh();
+    }
   }
 
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryLayerTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryLayerTest.java	(revision 31988)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/MapillaryLayerTest.java	(revision 31989)
@@ -3,4 +3,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
 
 import org.junit.Test;
@@ -26,3 +29,40 @@
     MapillaryLayer.getInstance().mergeFrom(dummyLayer);
   }
+
+  @Test
+  public void testSetVisible() {
+    MapillaryLayer.getInstance().getData().add(new MapillaryImportedImage(0.0, 0.0, 0.0, new File("")));
+    MapillaryLayer.getInstance().getData().add(new MapillaryImportedImage(0.0, 0.0, 0.0, new File("")));
+    MapillaryImportedImage invisibleImage = new MapillaryImportedImage(0.0, 0.0, 0.0, new File(""));
+    invisibleImage.setVisible(false);
+    MapillaryLayer.getInstance().getData().add(invisibleImage);
+
+    MapillaryLayer.getInstance().setVisible(false);
+    for (MapillaryAbstractImage img : MapillaryLayer.getInstance().getData().getImages()) {
+      assertEquals(false, img.isVisible());
+    }
+
+
+    MapillaryLayer.getInstance().setVisible(true);
+    for (MapillaryAbstractImage img : MapillaryLayer.getInstance().getData().getImages()) {
+      assertEquals(true, img.isVisible());
+    }
+  }
+
+  @Test
+  public void testGetInfoComponent() {
+    Object comp = MapillaryLayer.getInstance().getInfoComponent();
+    assertTrue(comp instanceof String);
+    assertTrue(((String)comp).length() >= 9);
+  }
+
+  @Test
+  public void testClearInstance() {
+    MapillaryLayer.getInstance();
+    assertTrue(MapillaryLayer.hasInstance());
+    MapillaryLayer.clearInstance();
+    assertFalse(MapillaryLayer.hasInstance());
+    MapillaryLayer.getInstance();
+    assertTrue(MapillaryLayer.hasInstance());
+  }
 }
