Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 6455)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 6456)
@@ -677,4 +677,24 @@
     }
 
+    public void showFirstPhoto() {
+        if (data != null && data.size() > 0) {
+            currentPhoto = 0;
+            ImageViewerDialog.showImage(this, data.get(currentPhoto));
+        } else {
+            currentPhoto = -1;
+        }
+        Main.map.repaint();
+    }
+
+    public void showLastPhoto() {
+        if (data != null && data.size() > 0) {
+            currentPhoto = data.size() - 1;
+            ImageViewerDialog.showImage(this, data.get(currentPhoto));
+        } else {
+            currentPhoto = -1;
+        }
+        Main.map.repaint();
+    }
+
     public void checkPreviousNextButtons() {
         ImageViewerDialog.setNextEnabled(currentPhoto < data.size() - 1);
Index: /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 6455)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/geoimage/ImageViewerDialog.java	(revision 6456)
@@ -37,4 +37,6 @@
     private static final String COMMAND_PREVIOUS = "previous";
     private static final String COMMAND_COLLAPSE = "collapse";
+    private static final String COMMAND_FIRST = "first";
+    private static final String COMMAND_LAST = "last";
 
     private ImageDisplay imgDisplay = new ImageDisplay();
@@ -116,4 +118,15 @@
         btnNext.getActionMap().put(ANEXT, nextAction);
 
+        Main.registerActionShortcut(
+                new ImageAction(COMMAND_FIRST, null, null),
+                Shortcut.registerShortcut(
+                        "geoimage:first", tr("Geoimage: {0}", tr("Show first Image")), KeyEvent.VK_HOME, Shortcut.DIRECT)
+        );
+        Main.registerActionShortcut(
+                new ImageAction(COMMAND_LAST, null, null),
+                Shortcut.registerShortcut(
+                        "geoimage:last", tr("Geoimage: {0}", tr("Show last Image")), KeyEvent.VK_END, Shortcut.DIRECT)
+        );
+
         JToggleButton tbCentre = new JToggleButton(new ImageAction(COMMAND_CENTERVIEW, ImageProvider.get("dialogs", "centreview"), tr("Center view")));
         tbCentre.setPreferredSize(buttonDim);
@@ -174,4 +187,8 @@
                     currentLayer.showPreviousPhoto();
                 }
+            } else if (COMMAND_FIRST.equals(action) && currentLayer != null) {
+                currentLayer.showFirstPhoto();
+            } else if (COMMAND_LAST.equals(action) && currentLayer != null) {
+                currentLayer.showLastPhoto();
 
             } else if (COMMAND_CENTERVIEW.equals(action)) {
