Index: /trunk/src/org/openstreetmap/josm/data/ImageData.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/ImageData.java	(revision 17573)
+++ /trunk/src/org/openstreetmap/josm/data/ImageData.java	(revision 17574)
@@ -64,4 +64,5 @@
         }
         this.geoImages.addAll(this.data);
+        data.forEach(image -> image.setDataSet(this));
         selectedImagesIndex.add(-1);
     }
@@ -218,4 +219,14 @@
 
     /**
+     * Indicate that a entry has changed
+     * @param gpxImageEntry The entry to update
+     * @since xxx
+     */
+    public void fireNodeMoved(ImageEntry gpxImageEntry) {
+        this.geoImages.remove(gpxImageEntry);
+        this.geoImages.add(gpxImageEntry);
+    }
+
+    /**
      * Remove the image from the list of selected images
      * @param image {@link ImageEntry} the image to remove
Index: /trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java	(revision 17573)
+++ /trunk/src/org/openstreetmap/josm/data/gpx/GpxImageEntry.java	(revision 17574)
@@ -552,5 +552,5 @@
     public BBox getBBox() {
         // new BBox(LatLon) is null safe.
-        // Use `getPos` instead of `getExifCoor` since the image may be coorelated against a GPX track
+        // Use `getPos` instead of `getExifCoor` since the image may be correlated against a GPX track
         return new BBox(this.getPos());
     }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 17573)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 17574)
@@ -7,4 +7,5 @@
 import java.util.Objects;
 
+import org.openstreetmap.josm.data.ImageData;
 import org.openstreetmap.josm.data.gpx.GpxImageEntry;
 
@@ -16,4 +17,5 @@
 
     private Image thumbnail;
+    private ImageData dataSet;
 
     /**
@@ -76,4 +78,39 @@
 
     @Override
+    public void applyTmp() {
+        super.applyTmp();
+        if (this.dataSet != null) {
+            this.dataSet.fireNodeMoved(this);
+        }
+    }
+
+    @Override
+    public void discardTmp() {
+        super.discardTmp();
+        if (this.dataSet != null) {
+            this.dataSet.fireNodeMoved(this);
+        }
+    }
+
+    /**
+     * Set the dataset for this image
+     * @param imageData The dataset
+     * @since xxx
+     */
+    public void setDataSet(ImageData imageData) {
+        this.dataSet = imageData;
+    }
+
+    /**
+     * Get the dataset for this image
+     * @return The dataset
+     * @since xxx
+     */
+    public ImageData getDataSet() {
+        return this.dataSet;
+    }
+
+
+    @Override
     public int hashCode() {
         return Objects.hash(super.hashCode(), thumbnail);
