Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java	(revision 31268)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java	(revision 31270)
@@ -24,4 +24,5 @@
 	private final List<MapillaryAbstractImage> images;
 	private MapillaryAbstractImage selectedImage;
+	private MapillaryAbstractImage hoveredImage;
 	private final List<MapillaryAbstractImage> multiSelectedImages;
 
@@ -86,4 +87,22 @@
 			addWithoutUpdate(image);
 		}
+	}
+
+	/**
+	 * Sets the image under the mouse cursor.
+	 * 
+	 * @param image
+	 */
+	public void setHoveredImage(MapillaryAbstractImage image) {
+		hoveredImage = image;
+	}
+
+	/**
+	 * Returns the image under the mouse cursor.
+	 * 
+	 * @return
+	 */
+	public MapillaryAbstractImage getHoveredImage() {
+		return hoveredImage;
 	}
 
@@ -212,5 +231,6 @@
 	}
 
-	private void fireSelectedImageChanged(MapillaryAbstractImage oldImage, MapillaryAbstractImage newImage) {
+	private void fireSelectedImageChanged(MapillaryAbstractImage oldImage,
+			MapillaryAbstractImage newImage) {
 		if (listeners.isEmpty())
 			return;
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java	(revision 31268)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryImage.java	(revision 31270)
@@ -16,5 +16,5 @@
 	/** Unique identifier of the object */
 	private final String key;
-	/** Sequence of pictures containing this */
+	/** Sequence of pictures containing this object*/
 	private MapillarySequence sequence;
 
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 31268)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 31270)
@@ -229,23 +229,9 @@
 					else
 						icon = MapillaryPlugin.MAP_ICON_SELECTED;
-					Image imagetemp = icon.getImage();
-					BufferedImage bi = (BufferedImage) imagetemp;
-					int width = icon.getIconWidth();
-					int height = icon.getIconHeight();
-
-					// Rotate the image
-					double rotationRequired = Math.toRadians(image.getCa());
-					double locationX = width / 2;
-					double locationY = height / 2;
-					AffineTransform tx = AffineTransform.getRotateInstance(
-							rotationRequired, locationX, locationY);
-					AffineTransformOp op = new AffineTransformOp(tx,
-							AffineTransformOp.TYPE_BILINEAR);
-
-					g.drawImage(op.filter(bi, null), p.x - (width / 2), p.y
-							- (height / 2), Main.map.mapView);
+					draw(g, image, icon, p);
 					if (!image.getSignals().isEmpty()) {
 						g.drawImage(MapillaryPlugin.MAP_SIGNAL.getImage(), p.x
-								+ width / 2, p.y - height / 2,
+								+ icon.getIconWidth() / 2,
+								p.y - icon.getIconHeight() / 2,
 								Main.map.mapView);
 					}
@@ -257,23 +243,44 @@
 					else
 						icon = MapillaryPlugin.MAP_ICON_SELECTED;
-					Image imagetemp = icon.getImage();
-					BufferedImage bi = (BufferedImage) imagetemp;
-					int width = icon.getIconWidth();
-					int height = icon.getIconHeight();
-
-					// Rotate the image
-					double rotationRequired = Math.toRadians(image.getCa());
-					double locationX = width / 2;
-					double locationY = height / 2;
-					AffineTransform tx = AffineTransform.getRotateInstance(
-							rotationRequired, locationX, locationY);
-					AffineTransformOp op = new AffineTransformOp(tx,
-							AffineTransformOp.TYPE_BILINEAR);
-
-					g.drawImage(op.filter(bi, null), p.x - (width / 2), p.y
-							- (height / 2), Main.map.mapView);
+					draw(g, image, icon, p);
 				}
 			}
 		}
+	}
+
+	/**
+	 * Draws the given icon of an image. Also checks if the mouse is over the
+	 * image.
+	 * 
+	 * @param g
+	 * @param image
+	 * @param icon
+	 * @param p
+	 */
+	private void draw(Graphics2D g, MapillaryAbstractImage image,
+			ImageIcon icon, Point p) {
+		draw(g, icon, p, image.getCa());
+		if (MapillaryData.getInstance().getHoveredImage() == image) {
+			draw(g, MapillaryPlugin.MAP_ICON_HOVER, p, image.getCa());
+		}
+	}
+
+	private void draw(Graphics2D g, ImageIcon icon, Point p, double ca) {
+		Image imagetemp = icon.getImage();
+		BufferedImage bi = (BufferedImage) imagetemp;
+		int width = icon.getIconWidth();
+		int height = icon.getIconHeight();
+
+		// Rotate the image
+		double rotationRequired = Math.toRadians(ca);
+		double locationX = width / 2;
+		double locationY = height / 2;
+		AffineTransform tx = AffineTransform.getRotateInstance(
+				rotationRequired, locationX, locationY);
+		AffineTransformOp op = new AffineTransformOp(tx,
+				AffineTransformOp.TYPE_BILINEAR);
+
+		g.drawImage(op.filter(bi, null), p.x - (width / 2), p.y - (height / 2),
+				Main.map.mapView);
 	}
 
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryMouseAdapter.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryMouseAdapter.java	(revision 31268)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryMouseAdapter.java	(revision 31270)
@@ -11,4 +11,5 @@
 import org.openstreetmap.josm.plugins.mapillary.commands.CommandTurnImage;
 import org.openstreetmap.josm.plugins.mapillary.commands.MapillaryRecord;
+import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryToggleDialog;
 
 /**
@@ -84,8 +85,8 @@
 												.subList(j, i + 1)));
 				}
-			// click
+				// click
 			} else
 				mapillaryData.setSelectedImage(closest);
-		// If you select an imported image
+			// If you select an imported image
 		} else if (closestTemp instanceof MapillaryImportedImage) {
 			MapillaryImportedImage closest = (MapillaryImportedImage) closestTemp;
@@ -173,3 +174,26 @@
 	}
 
+	/**
+	 * Checks if the mouse is over pictures.
+	 */
+	@Override
+	public void mouseMoved(MouseEvent e) {
+		MapillaryAbstractImage closestTemp = getClosest(e.getPoint());
+
+		if (Main.map.mapView.getActiveLayer() instanceof MapillaryLayer
+				&& MapillaryData.getInstance().getHoveredImage() != closestTemp
+				&& closestTemp != null) {
+			MapillaryData.getInstance().setHoveredImage(closestTemp);
+			MapillaryToggleDialog.getInstance().setImage(closestTemp);
+			MapillaryData.getInstance().dataUpdated();
+			MapillaryToggleDialog.getInstance().updateImage();
+		} else if (MapillaryData.getInstance().getHoveredImage() != closestTemp
+				&& closestTemp == null) {
+			MapillaryData.getInstance().setHoveredImage(null);
+			MapillaryToggleDialog.getInstance().setImage(
+					MapillaryData.getInstance().getSelectedImage());
+			MapillaryData.getInstance().dataUpdated();
+			MapillaryToggleDialog.getInstance().updateImage();
+		}
+	}
 }
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java	(revision 31268)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java	(revision 31270)
@@ -43,4 +43,5 @@
 	public static final ImageIcon MAP_SIGNAL = new ImageProvider("signal.png")
 			.get();
+	public static final ImageIcon MAP_ICON_HOVER = new ImageProvider("hover.png").get();
 	public static final int ICON_SIZE = 24;
 
