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 31356)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryData.java	(revision 31357)
@@ -106,5 +106,5 @@
    * @return The image under the mouse cursor.
    */
-  public MapillaryAbstractImage getHoveredImage() {
+  public MapillaryAbstractImage getHighlighted() {
     return highlightedImage;
   }
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 31356)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 31357)
@@ -10,4 +10,6 @@
 import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryFilterDialog;
 import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryMainDialog;
+import org.openstreetmap.josm.plugins.mapillary.mode.AbstractMode;
+import org.openstreetmap.josm.plugins.mapillary.mode.JoinMode;
 import org.openstreetmap.josm.plugins.mapillary.mode.SelectMode;
 import org.openstreetmap.josm.Main;
@@ -44,5 +46,4 @@
 import java.awt.Rectangle;
 import java.awt.TexturePaint;
-import java.awt.event.MouseAdapter;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Area;
@@ -59,9 +60,9 @@
 import java.util.ArrayList;
 
-public class MapillaryLayer extends AbstractModifiableLayer implements
-    DataSetListener, EditLayerChangeListener, LayerChangeListener {
-
-  public final static int SEQUENCE_MAX_JUMP_DISTANCE = Main.pref.getInteger(
-      "mapillary.sequence-max-jump-distance", 100);
+public class MapillaryLayer extends AbstractModifiableLayer implements DataSetListener, EditLayerChangeListener,
+    LayerChangeListener {
+
+  public final static int SEQUENCE_MAX_JUMP_DISTANCE = Main.pref
+      .getInteger("mapillary.sequence-max-jump-distance", 100);
 
   private boolean TEMP_MANUAL = false;
@@ -76,10 +77,8 @@
   public ArrayList<Bounds> bounds;
 
-  private MouseAdapter mode;
-
-  private int highlightPointRadius = Main.pref.getInteger(
-      "mappaint.highlight.radius", 7);
-  private int highlightStep = Main.pref
-      .getInteger("mappaint.highlight.step", 4);
+  public AbstractMode mode;
+
+  private int highlightPointRadius = Main.pref.getInteger("mappaint.highlight.radius", 7);
+  private int highlightStep = Main.pref.getInteger("mappaint.highlight.step", 4);
 
   private volatile TexturePaint hatched;
@@ -120,6 +119,6 @@
     data.dataUpdated();
   }
-  
-  public void setMode(MouseAdapter mode) {
+
+  public void setMode(AbstractMode mode) {
     Main.map.mapView.removeMouseListener(this.mode);
     Main.map.mapView.removeMouseMotionListener(this.mode);
@@ -143,6 +142,5 @@
     if (Main.pref.getBoolean("mapillary.download-manually") || TEMP_MANUAL)
       return;
-    for (Bounds bounds : Main.map.mapView.getEditLayer().data
-        .getDataSourceBounds()) {
+    for (Bounds bounds : Main.map.mapView.getEditLayer().data.getDataSourceBounds()) {
       if (!this.bounds.contains(bounds)) {
         this.bounds.add(bounds);
@@ -160,6 +158,5 @@
   private void checkAreaTooBig() {
     double area = 0;
-    for (Bounds bounds : Main.map.mapView.getEditLayer().data
-        .getDataSourceBounds()) {
+    for (Bounds bounds : Main.map.mapView.getEditLayer().data.getDataSourceBounds()) {
       area += bounds.getArea();
     }
@@ -272,6 +269,6 @@
         Point p1 = mv.getPoint(bounds.getMin());
         Point p2 = mv.getPoint(bounds.getMax());
-        Rectangle r = new Rectangle(Math.min(p1.x, p2.x), Math.min(p1.y, p2.y),
-            Math.abs(p2.x - p1.x), Math.abs(p2.y - p1.y));
+        Rectangle r = new Rectangle(Math.min(p1.x, p2.x), Math.min(p1.y, p2.y), Math.abs(p2.x - p1.x), Math.abs(p2.y
+            - p1.y));
         a.subtract(new Area(r));
       }
@@ -294,6 +291,6 @@
         MapillaryLayer.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);
+        g.drawLine(mv.getPoint(closestImages[0].getLatLon()).x, mv.getPoint(closestImages[0].getLatLon()).y,
+            selected.x, selected.y);
         MapillaryMainDialog.getInstance().blueButton.setEnabled(true);
       }
@@ -301,6 +298,6 @@
         MapillaryLayer.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);
+        g.drawLine(mv.getPoint(closestImages[1].getLatLon()).x, mv.getPoint(closestImages[1].getLatLon()).y,
+            selected.x, selected.y);
         MapillaryMainDialog.getInstance().redButton.setEnabled(true);
       }
@@ -311,5 +308,5 @@
         continue;
       Point p = mv.getPoint(imageAbs.getLatLon());
-      
+
       Point nextp = null;
       // Draw sequence line
@@ -326,5 +323,5 @@
           g.drawLine(p.x, p.y, nextp.x, nextp.y);
       }
-      
+
       if (imageAbs instanceof MapillaryImage) {
         MapillaryImage image = (MapillaryImage) imageAbs;
@@ -336,7 +333,6 @@
         draw(g, image, icon, p);
         if (!image.getSigns().isEmpty()) {
-          g.drawImage(MapillaryPlugin.MAP_SIGN.getImage(),
-              p.x + icon.getIconWidth() / 2, p.y - icon.getIconHeight() / 2,
-              Main.map.mapView);
+          g.drawImage(MapillaryPlugin.MAP_SIGN.getImage(), p.x + icon.getIconWidth() / 2, p.y - icon.getIconHeight()
+              / 2, Main.map.mapView);
         }
       } else if (imageAbs instanceof MapillaryImportedImage) {
@@ -350,4 +346,7 @@
       }
     }
+    if (mode instanceof JoinMode) {
+      mode.paint(g, mv, box);
+    }
   }
 
@@ -362,6 +361,6 @@
     Color oldColor = g.getColor();
     Color highlightColor = PaintColors.HIGHLIGHT.get();
-    Color highlightColorTransparent = new Color(highlightColor.getRed(),
-        highlightColor.getGreen(), highlightColor.getBlue(), 100);
+    Color highlightColorTransparent = new Color(highlightColor.getRed(), highlightColor.getGreen(),
+        highlightColor.getBlue(), 100);
     g.setColor(highlightColorTransparent);
     int s = size + highlightPointRadius;
@@ -383,6 +382,5 @@
    * @param p
    */
-  private void draw(Graphics2D g, MapillaryAbstractImage image, ImageIcon icon,
-      Point p) {
+  private void draw(Graphics2D g, MapillaryAbstractImage image, ImageIcon icon, Point p) {
     Image imagetemp = icon.getImage();
     BufferedImage bi = (BufferedImage) imagetemp;
@@ -394,12 +392,9 @@
     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);
-    if (data.getHoveredImage() == image) {
+    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);
+    if (data.getHighlighted() == image) {
       drawPointHighlight(g, p, 16);
     }
@@ -418,6 +413,5 @@
   @Override
   public void mergeFrom(Layer from) {
-    throw new UnsupportedOperationException(
-        "This layer does not support merging yet");
+    throw new UnsupportedOperationException("This layer does not support merging yet");
   }
 
@@ -441,6 +435,5 @@
     MapillaryImage selected = (MapillaryImage) data.getSelectedImage();
     MapillaryImage[] ret = new MapillaryImage[2];
-    double[] distances = { SEQUENCE_MAX_JUMP_DISTANCE,
-        SEQUENCE_MAX_JUMP_DISTANCE };
+    double[] distances = { SEQUENCE_MAX_JUMP_DISTANCE, SEQUENCE_MAX_JUMP_DISTANCE };
     LatLon selectedCoords = data.getSelectedImage().getLatLon();
     for (MapillaryAbstractImage imagePrev : data.getImages()) {
@@ -457,6 +450,5 @@
           ret[0] = image;
           distances[0] = image.getLatLon().greatCircleDistance(selectedCoords);
-        } else if ((ret[1] == null || image.getLatLon().greatCircleDistance(
-            selectedCoords) < distances[1])
+        } else if ((ret[1] == null || image.getLatLon().greatCircleDistance(selectedCoords) < distances[1])
             && image.getSequence() != ret[0].getSequence()) {
           ret[1] = image;
@@ -467,9 +459,7 @@
     // Predownloads the thumbnails
     if (ret[0] != null)
-      new MapillaryCache(ret[0].getKey(), MapillaryCache.Type.THUMBNAIL)
-          .submit(data, false);
+      new MapillaryCache(ret[0].getKey(), MapillaryCache.Type.THUMBNAIL).submit(data, false);
     if (ret[1] != null)
-      new MapillaryCache(ret[1].getKey(), MapillaryCache.Type.THUMBNAIL)
-          .submit(data, false);
+      new MapillaryCache(ret[1].getKey(), MapillaryCache.Type.THUMBNAIL).submit(data, false);
     return ret;
   }
@@ -566,5 +556,7 @@
       else
         Main.map.statusLine.setHelpText(tr("No images found"));
-    }
+      MapillaryPlugin.setMenuEnabled(MapillaryPlugin.JOIN_MENU, true);
+    } else
+      MapillaryPlugin.setMenuEnabled(MapillaryPlugin.JOIN_MENU, false);
   }
 
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 31356)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java	(revision 31357)
@@ -10,9 +10,6 @@
 import org.openstreetmap.josm.data.cache.JCSCacheManager;
 import org.openstreetmap.josm.gui.MainMenu;
-import org.openstreetmap.josm.gui.MapView;
-import org.openstreetmap.josm.gui.MapView.EditLayerChangeListener;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
 import org.openstreetmap.josm.plugins.Plugin;
@@ -27,9 +24,9 @@
 /**
  * This is the main class of the Mapillary plugin.
- * 
+ *
  * @author nokutu
  *
  */
-public class MapillaryPlugin extends Plugin implements EditLayerChangeListener {
+public class MapillaryPlugin extends Plugin {
 
   public static final ImageIcon ICON24 = new ImageProvider("icon24.png").get();
@@ -49,4 +46,5 @@
   private final MapillaryDownloadViewAction downloadViewAction;
   private final MapillaryImportIntoSequenceAction importIntoSequenceAction;
+  private final MapillaryJoinAction joinAction;
 
   public static JMenuItem DOWNLOAD_MENU;
@@ -56,4 +54,5 @@
   public static JMenuItem DOWNLOAD_VIEW_MENU;
   public static JMenuItem IMPORT_INTO_SEQUENCE_MENU;
+  public static JMenuItem JOIN_MENU;
 
   public MapillaryPlugin(PluginInformation info) {
@@ -65,4 +64,5 @@
     downloadViewAction = new MapillaryDownloadViewAction();
     importIntoSequenceAction = new MapillaryImportIntoSequenceAction();
+    joinAction = new MapillaryJoinAction();
 
     if (Main.main != null) { // important for headless mode
@@ -73,4 +73,5 @@
       ZOOM_MENU = MainMenu.add(Main.main.menu.viewMenu, zoomAction, false, 15);
       DOWNLOAD_VIEW_MENU = MainMenu.add(Main.main.menu.fileMenu, downloadViewAction, false, 14);
+      JOIN_MENU = MainMenu.add(Main.main.menu.dataMenu, joinAction, false);
     }
 
@@ -81,6 +82,6 @@
     ZOOM_MENU.setEnabled(false);
     DOWNLOAD_VIEW_MENU.setEnabled(false);
+    JOIN_MENU.setEnabled(false);
 
-    MapView.addEditLayerChangeListener(this);
     try {
       CACHE = JCSCacheManager.getCache("mapillary", 10, 10000, this.getPluginDir() + "/cache/");
@@ -125,10 +126,3 @@
     return new MapillaryPreferenceSetting();
   }
-
-  @Override
-  public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer) {
-    if (oldLayer == null && newLayer != null) {
-    } else if (oldLayer != null && newLayer == null) {
-    }
-  }
 }
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/MapillaryImportAction.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/MapillaryImportAction.java	(revision 31356)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/MapillaryImportAction.java	(revision 31357)
@@ -62,4 +62,5 @@
       for (int i = 0; i < chooser.getSelectedFiles().length; i++) {
         File file = chooser.getSelectedFiles()[i];
+        MapillaryLayer.getInstance();
         if (file.isDirectory()) {
           // TODO import directory
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/MapillaryJoinAction.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/MapillaryJoinAction.java	(revision 31357)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/MapillaryJoinAction.java	(revision 31357)
@@ -0,0 +1,33 @@
+package org.openstreetmap.josm.plugins.mapillary.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.plugins.mapillary.MapillaryLayer;
+import org.openstreetmap.josm.plugins.mapillary.mode.JoinMode;
+import org.openstreetmap.josm.plugins.mapillary.mode.SelectMode;
+import org.openstreetmap.josm.tools.ImageProvider;
+import org.openstreetmap.josm.tools.Shortcut;
+
+public class MapillaryJoinAction extends JosmAction {
+
+  public MapillaryJoinAction() {
+    super(tr("Join mode"), new ImageProvider("icon24.png"),
+        tr("Join/unjoin pictures"), Shortcut.registerShortcut("Mapillary join",
+            tr("Join Mapillary pictures"), KeyEvent.CHAR_UNDEFINED,
+            Shortcut.NONE), false, "mapillaryJoin", false);
+    this.setEnabled(false);
+  }
+
+  @Override
+  public void actionPerformed(ActionEvent arg0) {
+    if (MapillaryLayer.getInstance().mode instanceof SelectMode) {
+      MapillaryLayer.getInstance().setMode(new JoinMode());
+    } else {
+      MapillaryLayer.getInstance().setMode(new SelectMode());
+    }
+  }
+}
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/AbstractMode.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/AbstractMode.java	(revision 31356)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/AbstractMode.java	(revision 31357)
@@ -1,8 +1,11 @@
 package org.openstreetmap.josm.plugins.mapillary.mode;
 
+import java.awt.Graphics2D;
 import java.awt.Point;
 import java.awt.event.MouseAdapter;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryAbstractImage;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryData;
@@ -10,5 +13,5 @@
 public abstract class AbstractMode extends MouseAdapter {
 
-  protected MapillaryData data;
+  protected MapillaryData data = MapillaryData.getInstance();
 
   public AbstractMode() {
@@ -32,3 +35,6 @@
   }
 
+  public abstract void paint(Graphics2D g, MapView mv, Bounds box);
+
+
 }
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/JoinMode.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/JoinMode.java	(revision 31356)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/JoinMode.java	(revision 31357)
@@ -1,25 +1,85 @@
 package org.openstreetmap.josm.plugins.mapillary.mode;
 
-import java.awt.event.MouseAdapter;
+import java.awt.Color;
+import java.awt.Graphics2D;
+import java.awt.Point;
 import java.awt.event.MouseEvent;
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryAbstractImage;
+import org.openstreetmap.josm.plugins.mapillary.MapillaryImportedImage;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryLayer;
+import org.openstreetmap.josm.plugins.mapillary.MapillarySequence;
 
 public class JoinMode extends AbstractMode {
-  
+
+  public MapillaryImportedImage lastClick;
+  public MouseEvent lastPos;
+
   @Override
   public void mousePressed(MouseEvent e) {
-    
+    if (data.getHighlighted() == null)
+      return;
+    if (lastClick == null && data.getHighlighted() instanceof MapillaryImportedImage) {
+      if (data.getHighlighted().previous() == null || data.getHighlighted().next() == null)
+        lastClick = (MapillaryImportedImage) data.getHighlighted();
+    } else if (lastClick != null && data.getHighlighted() instanceof MapillaryImportedImage) {
+      if ((data.getHighlighted().previous() == null && lastClick.next() == null)
+          || (data.getHighlighted().next() == null && lastClick.previous() == null)) {
+        join(lastClick, (MapillaryImportedImage) data.getHighlighted());
+      } else if (lastClick.next() == data.getHighlighted() || lastClick.previous() == data.getHighlighted())
+        unjoin(lastClick, (MapillaryImportedImage) data.getHighlighted());
+      lastClick = null;
+    }
+    data.dataUpdated();
   }
-  
+
   @Override
   public void mouseMoved(MouseEvent e) {
-    MapillaryAbstractImage closestTemp = getClosest(e.getPoint());
+    lastPos = e;
     if (!(Main.map.mapView.getActiveLayer() instanceof MapillaryLayer))
       return;
+    MapillaryAbstractImage closestTemp = getClosest(e.getPoint());
     data.setHighlightedImage(closestTemp);
+    data.dataUpdated();
+  }
+
+  @Override
+  public void paint(Graphics2D g, MapView mv, Bounds box) {
+    if (lastClick != null) {
+      g.setColor(Color.WHITE);
+      Point p0 = mv.getPoint(lastClick.getLatLon());
+      Point p1 = lastPos.getPoint();
+      g.drawLine(p0.x, p0.y, p1.x, p1.y);
+    }
+  }
+
+  private void join(MapillaryImportedImage img1, MapillaryImportedImage img2) {
+    if (img1.next() != null) {
+      MapillaryImportedImage temp = img1;
+      img1 = img2;
+      img2 = temp;
+    }
+    if (img1.getSequence() == null) {
+      MapillarySequence seq = new MapillarySequence();
+      seq.add(img1);
+      img1.setSequence(seq);
+    }
+    if (img2.getSequence() == null) {
+      MapillarySequence seq = new MapillarySequence();
+      seq.add(img2);
+      img2.setSequence(seq);
+    }
+
+    for (MapillaryAbstractImage img : img2.getSequence().getImages()) {
+      img1.getSequence().add(img);
+      img.setSequence(img1.getSequence());
+    }
+  }
+
+  private void unjoin(MapillaryImportedImage img1, MapillaryImportedImage img2) {
+    // TODO
   }
 }
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/SelectMode.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/SelectMode.java	(revision 31356)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/mode/SelectMode.java	(revision 31357)
@@ -1,4 +1,5 @@
 package org.openstreetmap.josm.plugins.mapillary.mode;
 
+import java.awt.Graphics2D;
 import java.awt.Point;
 import java.awt.event.MouseEvent;
@@ -6,6 +7,8 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryAbstractImage;
@@ -21,5 +24,5 @@
 /**
  * Handles the input event related with the layer. Mainly clicks.
- * 
+ *
  * @author nokutu
  *
@@ -178,9 +181,9 @@
     }
 
-    if (MapillaryData.getInstance().getHoveredImage() != closestTemp && closestTemp != null) {
+    if (MapillaryData.getInstance().getHighlighted() != closestTemp && closestTemp != null) {
       MapillaryData.getInstance().setHighlightedImage(closestTemp);
       MapillaryMainDialog.getInstance().setImage(closestTemp);
       MapillaryMainDialog.getInstance().updateImage();
-    } else if (MapillaryData.getInstance().getHoveredImage() != closestTemp && closestTemp == null) {
+    } else if (MapillaryData.getInstance().getHighlighted() != closestTemp && closestTemp == null) {
       MapillaryData.getInstance().setHighlightedImage(null);
       MapillaryMainDialog.getInstance().setImage(MapillaryData.getInstance().getSelectedImage());
@@ -189,3 +192,7 @@
     MapillaryData.getInstance().dataUpdated();
   }
+
+  @Override
+  public void paint(Graphics2D g, MapView mv, Bounds box) {
+  }
 }
