Index: /trunk/src/org/openstreetmap/josm/data/ImageData.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/ImageData.java	(revision 17080)
+++ /trunk/src/org/openstreetmap/josm/data/ImageData.java	(revision 17081)
@@ -267,5 +267,5 @@
             data.remove(img);
         }
-        if (selectedImagesIndex.get(0) == data.size()) {
+        if (selectedImagesIndex.get(0) >= data.size()) {
             setSelectedImageIndex(data.size() - 1);
         } else {
Index: /trunk/test/unit/org/openstreetmap/josm/data/ImageDataTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/ImageDataTest.java	(revision 17080)
+++ /trunk/test/unit/org/openstreetmap/josm/data/ImageDataTest.java	(revision 17081)
@@ -196,4 +196,18 @@
 
     @Test
+    public void testRemoveSelectedImagesWithRemainingImages() {
+        List<ImageEntry> list = getOneImage();
+        list.add(new ImageEntry());
+        list.add(new ImageEntry());
+
+        ImageData data = new ImageData(list);
+        data.selectLastImage();
+        data.addImageToSelection(list.get(1));
+        data.removeSelectedImages();
+        assertEquals(1, data.getImages().size());
+        assertEquals(1, data.getSelectedImages().size());
+    }
+
+    @Test
     public void testSelectImageAfterRemove() {
         List<ImageEntry> list = getOneImage();
@@ -347,5 +361,4 @@
         data.selectFirstImage();
         assertEquals(1, data.getSelectedImages().size());
-
     }
 
