Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImportedImage.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImportedImage.java	(revision 31253)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImportedImage.java	(revision 31254)
@@ -16,12 +16,6 @@
 	}
 	
-	public BufferedImage getImage() {
-		try {
-			return ImageIO.read(file);
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return null;
+	public BufferedImage getImage() throws IOException {
+		return ImageIO.read(file);
 	}
 }
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 31253)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 31254)
@@ -115,6 +115,6 @@
 			private Point start;
 			private int lastButton;
-			private MapillaryImage closest;
-			private MapillaryImage lastClicked;
+			private MapillaryAbstractImage closest;
+			private MapillaryAbstractImage lastClicked;
 
 			@Override
@@ -127,5 +127,6 @@
 					return;
 				MapillaryAbstractImage closestTemp = getClosest(e.getPoint());
-				if (closestTemp instanceof MapillaryImage || closestTemp == null) {
+				if (closestTemp instanceof MapillaryImage
+						|| closestTemp == null) {
 					MapillaryImage closest = (MapillaryImage) closestTemp;
 					if (e.getClickCount() == 2
@@ -146,17 +147,19 @@
 							&& closest != null)
 						mapillaryData.addMultiSelectedImage(closest);
-					else if (e.getModifiers() == (MouseEvent.BUTTON1_MASK | MouseEvent.SHIFT_MASK)) {
+					else if (e.getModifiers() == (MouseEvent.BUTTON1_MASK | MouseEvent.SHIFT_MASK)
+							&& this.closest instanceof MapillaryImage
+							&& this.lastClicked instanceof MapillaryImage) {
 						if (this.closest != null
 								&& this.lastClicked != null
-								&& this.closest.getSequence() == this.lastClicked
+								&& ((MapillaryImage) this.closest).getSequence() == ((MapillaryImage) this.lastClicked)
 										.getSequence()) {
-							int i = this.closest.getSequence().getImages()
+							int i = ((MapillaryImage) this.closest).getSequence().getImages()
 									.indexOf(this.closest);
-							int j = this.lastClicked.getSequence().getImages()
+							int j = ((MapillaryImage) this.lastClicked).getSequence().getImages()
 									.indexOf(this.lastClicked);
 							if (i < j)
 								mapillaryData
 										.addMultiSelectedImage(new ArrayList<MapillaryAbstractImage>(
-												this.closest.getSequence()
+												((MapillaryImage) this.closest).getSequence()
 														.getImages()
 														.subList(i, j + 1)));
@@ -164,9 +167,22 @@
 								mapillaryData
 										.addMultiSelectedImage(new ArrayList<MapillaryAbstractImage>(
-												this.closest.getSequence()
+												((MapillaryImage) this.closest).getSequence()
 														.getImages()
 														.subList(j, i + 1)));
 						}
 					} else
+						mapillaryData.setSelectedImage(closest);
+				} else if (closestTemp instanceof MapillaryImportedImage) {
+					MapillaryImportedImage closest = (MapillaryImportedImage) closestTemp;
+					this.start = e.getPoint();
+					this.lastClicked = this.closest;
+					this.closest = closest;
+					if (mapillaryData.getMultiSelectedImages()
+							.contains(closest))
+						return;
+					if (e.getModifiers() == (MouseEvent.BUTTON1_MASK | MouseEvent.CTRL_MASK)
+							&& closest != null)
+						mapillaryData.addMultiSelectedImage(closest);
+					else
 						mapillaryData.setSelectedImage(closest);
 				}
@@ -443,5 +459,5 @@
 		LatLon selectedCoords = mapillaryData.getSelectedImage().getLatLon();
 		for (MapillaryAbstractImage imagePrev : mapillaryData.getImages()) {
-			if (!(imagePrev instanceof MapillaryImage))
+			if (!(imagePrev instanceof MapillaryImportedImage))
 				continue;
 			MapillaryImage image = (MapillaryImage) imagePrev;
@@ -522,5 +538,4 @@
 			MapillaryLayer.getInstance().download();
 		}
-
 	}
 
