Index: trunk/src/org/openstreetmap/josm/data/gpx/GpxImageCorrelation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/gpx/GpxImageCorrelation.java	(revision 17877)
+++ trunk/src/org/openstreetmap/josm/data/gpx/GpxImageCorrelation.java	(revision 17878)
@@ -230,5 +230,5 @@
                 }
                 long tagms = TimeUnit.MINUTES.toMillis(tagTime);
-                if (curTmp.getPos() == null &&
+                if (!curTmp.hasNewGpsData() &&
                         (Math.abs(time - curWpTime) <= tagms
                         || Math.abs(prevWpTime - time) <= tagms)) {
@@ -256,5 +256,5 @@
                     break;
                 }
-                if (curTmp.getPos() == null) {
+                if (!curTmp.hasNewGpsData()) {
                     // The values of timeDiff are between 0 and 1, it is not seconds but a dimensionless variable
                     double timeDiff = (double) (imgTime - prevWpTime) / Math.abs(curWpTime - prevWpTime);
Index: trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java	(revision 17877)
+++ trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java	(revision 17878)
@@ -572,5 +572,5 @@
             gpsTime = tmp.gpsTime;
             exifImgDir = tmp.exifImgDir;
-            isNewGpsData = tmp.isNewGpsData;
+            isNewGpsData = isNewGpsData || tmp.isNewGpsData;
             tmp = null;
         }
Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 17877)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/CorrelateGpxWithImages.java	(revision 17878)
@@ -1091,8 +1091,8 @@
             List<ImageEntry> dateImgLst = getSortedImgList();
             // Create a temporary copy for each image
-            for (ImageEntry ie : dateImgLst) {
+            dateImgLst.forEach(ie -> {
                 ie.createTmp();
-                ie.getTmp().setPos(null);
-            }
+                ie.getTmp().unflagNewGpsData();
+            });
 
             GpxDataWrapper selGpx = selectedGPX(false);
