Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 18620)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 18621)
@@ -199,5 +199,10 @@
         }
         if (getInvalidGeoImages().size() == data.size()) {
-            ImageViewerDialog.getInstance().displayImages(Collections.singletonList(this.data.getFirstImage()));
+            this.data.setSelectedImage(this.data.getFirstImage());
+            // We do have to wrap the EDT call in a worker call, since layers may be created in the EDT.
+            // And the layer must be added to the layer list in order for the dialog to work properly.
+            MainApplication.worker.execute(() -> GuiHelper.runInEDT(() -> {
+                ImageViewerDialog.getInstance().displayImages(this.getSelection());
+            }));
         }
     }
@@ -302,6 +307,5 @@
     @Override
     public List<IImageEntry<?>> getInvalidGeoImages() {
-        return this.getImageData().getImages().stream().filter(entry -> entry.getPos() == null || entry.getExifCoor() == null
-              || !entry.getExifCoor().isValid() || !entry.getPos().isValid()).collect(toList());
+        return this.getImageData().getImages().stream().filter(entry -> entry.getPos() == null || !entry.getPos().isValid()).collect(toList());
     }
 
