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 31168)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 31170)
@@ -14,4 +14,5 @@
 import org.openstreetmap.josm.data.cache.BufferedImageCacheEntry;
 import org.openstreetmap.josm.data.cache.JCSCacheManager;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
@@ -27,4 +28,5 @@
 import org.openstreetmap.josm.data.osm.event.DataSetListener;
 
+import java.awt.Color;
 import java.awt.Graphics2D;
 import java.awt.Point;
@@ -45,5 +47,7 @@
 	public static Boolean INSTANCED = false;
 	public static CacheAccess<String, BufferedImageCacheEntry> CACHE;
-	
+	public static MapillaryImage BLUE;
+	public static MapillaryImage RED;
+
 	private final MapillaryData mapillaryData;
 	private List<Bounds> bounds;
@@ -143,4 +147,31 @@
 	public void paint(Graphics2D g, MapView mv, Bounds box) {
 		synchronized (this) {
+			// Draw colored lines
+			this.BLUE = null;
+			this.RED = null; 
+			MapillaryToggleDialog.getInstance().blueButton.setEnabled(false);
+			MapillaryToggleDialog.getInstance().redButton.setEnabled(false);
+			if (mapillaryData.getSelectedImage() != null) {
+				MapillaryImage[] closestImages = getClosestImagesFromDifferentSequences();
+				Point selected = mv.getPoint(mapillaryData.getSelectedImage()
+						.getLatLon());
+				if (closestImages[0] != null) {
+					this.BLUE = closestImages[0];
+					g.setColor(Color.BLUE);
+					g.drawLine(mv.getPoint(closestImages[0].getLatLon()).x,
+							mv.getPoint(closestImages[0].getLatLon()).y,
+							selected.x, selected.y);
+					MapillaryToggleDialog.getInstance().blueButton.setEnabled(true);
+				}
+				if (closestImages[1] != null) {
+					this.RED = closestImages[1];
+					g.setColor(Color.RED);
+					g.drawLine(mv.getPoint(closestImages[1].getLatLon()).x,
+							mv.getPoint(closestImages[1].getLatLon()).y,
+							selected.x, selected.y);
+					MapillaryToggleDialog.getInstance().redButton.setEnabled(true);
+				}
+			}
+			g.setColor(Color.WHITE);
 			for (MapillaryImage image : mapillaryData.getImages()) {
 				Point p = mv.getPoint(image.getLatLon());
@@ -190,4 +221,32 @@
 	}
 
+	private MapillaryImage[] getClosestImagesFromDifferentSequences() {
+		MapillaryImage[] ret = new MapillaryImage[2];
+		double[] distances = { 100, 100 };
+		LatLon selectedCoords = mapillaryData.getSelectedImage().getLatLon();
+		double maxJumpDistance = 100;
+		for (MapillaryImage image : mapillaryData.getImages()) {
+			if (image.getLatLon().greatCircleDistance(selectedCoords) < maxJumpDistance
+					&& mapillaryData.getSelectedImage().getSequence() != image
+							.getSequence()) {
+				if ((ret[0] == null && ret[1] == null)
+						|| (image.getLatLon().greatCircleDistance(
+								selectedCoords) < distances[0] && (ret[1] == null || image
+								.getSequence() != ret[1].getSequence()))) {
+					ret[0] = image;
+					distances[0] = image.getLatLon().greatCircleDistance(
+							selectedCoords);
+				} else if ((ret[1] == null || image.getLatLon()
+						.greatCircleDistance(selectedCoords) < distances[1])
+						&& image.getSequence() != ret[0].getSequence()) {
+					ret[1] = image;
+					distances[1] = image.getLatLon().greatCircleDistance(
+							selectedCoords);
+				}
+			}
+		}
+		return ret;
+	}
+
 	@Override
 	public void mouseClicked(MouseEvent e) {
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 31168)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java	(revision 31170)
@@ -37,6 +37,6 @@
 		exportAction = new MapillaryExportAction();
 
-		DOWNLOAD_MENU = MainMenu.add(Main.main.menu.imageryMenu,
-				downloadAction, false, 0);
+		DOWNLOAD_MENU = MainMenu
+				.add(Main.main.menu.imageryMenu, downloadAction, false);
 		EXPORT_MENU = MainMenu.add(Main.main.menu.fileMenu, exportAction,
 				false, 14);
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySequence.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySequence.java	(revision 31168)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySequence.java	(revision 31170)
@@ -13,4 +13,5 @@
 public class MapillarySequence {
 	private final List<MapillaryImage> images;
+	private String timestamp;
 
 	public MapillarySequence() {
@@ -29,4 +30,12 @@
 	public List<MapillaryImage> getImages() {
 		return this.images;
+	}
+	
+	public void setTimestamp(String timestamp) {
+		this.timestamp = timestamp;
+	}
+	
+	public String getTimestamp() {
+		return this.timestamp;
 	}
 
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryToggleDialog.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryToggleDialog.java	(revision 31168)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryToggleDialog.java	(revision 31170)
@@ -6,4 +6,5 @@
 import java.awt.image.BufferedImage;
 import java.awt.BorderLayout;
+import java.awt.Color;
 import java.awt.FlowLayout;
 import java.io.ByteArrayInputStream;
@@ -43,4 +44,6 @@
 	final SideButton previousButton = new SideButton(
 			new previousPictureAction());
+	final SideButton redButton = new SideButton(new redAction());
+	final SideButton blueButton = new SideButton(new blueAction());
 
 	public MapillaryImageDisplay mapillaryImageDisplay;
@@ -58,6 +61,13 @@
 		buttons = new JPanel();
 		buttons.setLayout(new FlowLayout(FlowLayout.CENTER));
+		blueButton.setBackground(Color.BLUE);
+		redButton.setBackground(Color.RED);
+		blueButton.setForeground(Color.WHITE);
+		redButton.setForeground(Color.WHITE);
+		buttons.add(blueButton);
 		buttons.add(previousButton);
-		buttons.add(nextButton);
+		buttons.add(nextButton);		
+		buttons.add(redButton);
+		
 		this.add(buttons, BorderLayout.SOUTH);
 	}
@@ -179,4 +189,42 @@
 		}
 	}
+	
+	class redAction extends AbstractAction {
+		public redAction() {
+			putValue(NAME, "Red");
+			putValue(SHORT_DESCRIPTION,
+					tr("Shows the previous picture in the sequence"));
+		}
+
+		@Override
+		public void actionPerformed(ActionEvent e) {
+			if (MapillaryToggleDialog.getInstance().getImage() != null) {
+				MapillaryData.getInstance().setSelectedImage(MapillaryLayer.RED);
+				MapillaryToggleDialog.getInstance().setImage(MapillaryLayer.RED);
+				MapillaryToggleDialog.getInstance().updateImage();
+				Main.map.mapView.zoomTo(MapillaryData.getInstance()
+						.getSelectedImage().getLatLon());
+			}
+		}
+	}
+	
+	class blueAction extends AbstractAction {
+		public blueAction() {
+			putValue(NAME, "Blue");
+			putValue(SHORT_DESCRIPTION,
+					tr("Shows the previous picture in the sequence"));
+		}
+
+		@Override
+		public void actionPerformed(ActionEvent e) {
+			if (MapillaryToggleDialog.getInstance().getImage() != null) {
+				MapillaryData.getInstance().setSelectedImage(MapillaryLayer.BLUE);
+				MapillaryToggleDialog.getInstance().setImage(MapillaryLayer.BLUE);
+				MapillaryToggleDialog.getInstance().updateImage();
+				Main.map.mapView.zoomTo(MapillaryData.getInstance()
+						.getSelectedImage().getLatLon());
+			}
+		}
+	}
 
 	/**
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySequenceDownloadThread.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySequenceDownloadThread.java	(revision 31168)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillarySequenceDownloadThread.java	(revision 31170)
@@ -79,4 +79,5 @@
 				}
 				MapillarySequence sequence = new MapillarySequence();
+				//sequence.setTimestamp(jsonobj.getString("created_at"));
 				int first = -1;
 				int last = -1;
