Index: /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 2903)
+++ /trunk/src/org/openstreetmap/josm/gui/download/BookmarkSelection.java	(revision 2904)
@@ -152,10 +152,10 @@
             lblCurrentDownloadArea.setText(tr("<html>There is currently no download area selected.</html>"));
         } else {
-            lblCurrentDownloadArea.setText(tr("<html><strong>Current download area</strong> (minlat,minlon, maxlat, maxlon): </html>"));
+            lblCurrentDownloadArea.setText(tr("<html><strong>Current download area</strong> (minlon, minlat, maxlon, maxlat): </html>"));
             bboxDisplay.setText(
+                    currentArea.getMin().lonToString(CoordinateFormat.DECIMAL_DEGREES)+","+
                     currentArea.getMin().latToString(CoordinateFormat.DECIMAL_DEGREES)+","+
-                    currentArea.getMin().lonToString(CoordinateFormat.DECIMAL_DEGREES)+","+
-                    currentArea.getMax().latToString(CoordinateFormat.DECIMAL_DEGREES)+","+
-                    currentArea.getMax().lonToString(CoordinateFormat.DECIMAL_DEGREES)
+                    currentArea.getMax().lonToString(CoordinateFormat.DECIMAL_DEGREES)+","+
+                    currentArea.getMax().latToString(CoordinateFormat.DECIMAL_DEGREES)
             );
         }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 2903)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 2904)
@@ -32,4 +32,5 @@
 import java.util.HashSet;
 import java.util.LinkedHashSet;
+import java.util.LinkedList;
 import java.util.List;
 
@@ -55,4 +56,5 @@
 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
+import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
 import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -289,9 +291,12 @@
         return ImageProvider.get("dialogs/geoimage");
     }
-
-    @Override
-    public Object getInfoComponent() {
-        // TODO Auto-generated method stub
-        return null;
+    
+    public static interface LayerMenuAddition {
+        public Component getComponent(Layer layer);
+    }
+
+    private static List<LayerMenuAddition> menuAdditions = new LinkedList<LayerMenuAddition>();
+    public static void registerMenuAddition(LayerMenuAddition addition) {
+        menuAdditions.add(addition);
     }
 
@@ -301,16 +306,22 @@
         JMenuItem correlateItem = new JMenuItem(tr("Correlate to GPX"), ImageProvider.get("dialogs/geoimage/gpx2img"));
         correlateItem.addActionListener(new CorrelateGpxWithImages(this));
-
-        return new Component[] {
-                new JMenuItem(LayerListDialog.getInstance().createShowHideLayerAction(this)),
-                new JMenuItem(LayerListDialog.getInstance().createDeleteLayerAction(this)),
-                new JMenuItem(new RenameLayerAction(null, this)),
-                new JSeparator(),
-                correlateItem
-        };
-    }
-
-    @Override
-    public String getToolTipText() {
+        
+        List<Component> entries = new ArrayList<Component>();
+        entries.add(new JMenuItem(LayerListDialog.getInstance().createShowHideLayerAction(this)));
+        entries.add(new JMenuItem(LayerListDialog.getInstance().createDeleteLayerAction(this)));
+        entries.add(new JMenuItem(new RenameLayerAction(null, this)));
+        entries.add(new JSeparator());
+        entries.add(correlateItem);
+        for (LayerMenuAddition addition : menuAdditions) {
+            entries.add(addition.getComponent(this));
+        }
+        entries.add(new JSeparator());
+        entries.add(new JMenuItem(new LayerListPopup.InfoAction(this)));
+
+        return entries.toArray(new Component[0]);
+        
+    }
+
+    private String infoText() {
         int i = 0;
         for (ImageEntry e : data)
@@ -320,4 +331,13 @@
         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);
+    }
+    
+    @Override public Object getInfoComponent() {
+        return infoText();
+    }
+
+    @Override
+    public String getToolTipText() {
+        return infoText();
     }
 
@@ -730,3 +750,11 @@
         Main.map.mapView.repaint();
     }
+    
+    public List<ImageEntry> getImages() {
+        List<ImageEntry> copy = new ArrayList<ImageEntry>();
+        for (ImageEntry ie : data) {
+            copy.add(ie.clone());
+        }
+        return copy;
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 2903)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageEntry.java	(revision 2904)
@@ -17,5 +17,5 @@
  */
 
-final class ImageEntry implements Comparable<ImageEntry>, Cloneable {
+final public class ImageEntry implements Comparable<ImageEntry>, Cloneable {
     File file;
     Date time;
@@ -30,4 +30,12 @@
     Image thumbnail;
 
+    /**
+     * When the corralation dialog is open, we like to show the image position
+     * for the current time offset on the map in real time.
+     * On the other hand, when the user aborts this operation, the old values
+     * should be restored. We have a temprary copy, that overrides
+     * the normal values if it is not null. (This may be not the most elegant
+     * solution for this, but it works.)
+     */
     ImageEntry tmp;
 
@@ -55,4 +63,8 @@
     public void setElevation(Double elevation) {
         this.elevation = elevation;
+    }
+    
+    public File getFile() {
+        return file;
     }
 
