Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 8038)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 8041)
@@ -356,12 +356,24 @@
     }
 
+    /**
+     * Prepare the string that is displayed if layer information is requested.
+     * @return String with layer information
+     */
     private String infoText() {
-        int i = 0;
-        for (ImageEntry e : data)
+        int tagged = 0;
+        int newdata = 0;
+        for (ImageEntry e : data) {
             if (e.getPos() != null) {
-                i++;
-            }
-        return trn("{0} image loaded.", "{0} images loaded.", data.size(), data.size())
-                + " " + trn("{0} was found to be GPS tagged.", "{0} were found to be GPS tagged.", i, i);
+                tagged++;
+            }
+            if (e.hasNewGpsData()) {
+                newdata++;
+            }
+        }
+        return "<html>"
+                + trn("{0} image loaded.", "{0} images loaded.", data.size(), data.size())
+                + " " + trn("{0} was found to be GPS tagged.", "{0} were found to be GPS tagged.", tagged, tagged)
+                + (newdata > 0 ? "<br>" + trn("{0} has updated GPS data.", "{0} have updated GPS data.", newdata, newdata) : "")
+                + "</html>";
     }
 
@@ -1072,8 +1084,12 @@
     }
 
+    /**
+     * Get list of images in layer.
+     * @return List of images in layer
+     */
     public List<ImageEntry> getImages() {
         List<ImageEntry> copy = new ArrayList<>(data.size());
         for (ImageEntry ie : data) {
-            copy.add(ie.clone());
+            copy.add(ie);
         }
         return copy;
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 8038)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 8041)
@@ -251,28 +251,18 @@
     /**
      * Indicates that the image has new GPS data.
-     * That flag is used e.g. by the photo_geotagging plugin to decide for which image
-     * file the EXIF GPS data needs to be (re-)written.
+     * That flag is set by new GPS data providers.  It is used e.g. by the photo_geotagging plugin
+     * to decide for which image file the EXIF GPS data needs to be (re-)written.
      * @since 6392
      */
     public void flagNewGpsData() {
         isNewGpsData = true;
-        // We need to set the GPS time to tell the system (mainly the photo_geotagging plug-in)
-        // that the GPS data has changed. Check for existing GPS time and take EXIF time otherwise.
-        // This can be removed once isNewGpsData is used instead of the GPS time.
-        if (gpsTime == null) {
-            Date time = getExifGpsTime();
-            if (time == null) {
-                time = getExifTime();
-                if (time == null) {
-                    // Time still not set, take the current time.
-                    time = new Date();
-                }
-            }
-            gpsTime = time;
-        }
-        if (tmp != null && !tmp.hasGpsTime()) {
-            // tmp.gpsTime overrides gpsTime, so we set it too.
-            tmp.gpsTime = gpsTime;
-        }
+   }
+
+    /**
+     * Remove the flag that indicates new GPS data.
+     * The flag is cleared by a new GPS data consumer.
+     */
+    public void unflagNewGpsData() {
+        isNewGpsData = false;
     }
 
