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 31279)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryLayer.java	(revision 31280)
@@ -7,5 +7,4 @@
 import org.openstreetmap.josm.plugins.mapillary.cache.MapillaryCache;
 import org.openstreetmap.josm.plugins.mapillary.downloads.MapillaryDownloader;
-import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryHistoryDialog;
 import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryToggleDialog;
 import org.openstreetmap.josm.Main;
@@ -67,6 +66,4 @@
     public List<Bounds> bounds;
 
-    private MapillaryToggleDialog mtd;
-    private MapillaryHistoryDialog mhd;
 
     private MouseAdapter mouseAdapter;
@@ -101,18 +98,4 @@
             MapView.addLayerChangeListener(this);
             Main.map.mapView.getEditLayer().data.addDataSetListener(this);
-            if (mtd == null) {
-                if (MapillaryToggleDialog.INSTANCE == null) {
-                    mtd = MapillaryToggleDialog.getInstance();
-                    Main.map.addToggleDialog(mtd, false);
-                } else
-                    mtd = MapillaryToggleDialog.getInstance();
-            }
-            if (mhd == null) {
-                if (MapillaryHistoryDialog.INSTANCE == null) {
-                    mhd = MapillaryHistoryDialog.getInstance();
-                    Main.map.addToggleDialog(mhd, false);
-                } else
-                    mhd = MapillaryHistoryDialog.getInstance();
-            }
         }
         MapillaryPlugin.setMenuEnabled(MapillaryPlugin.EXPORT_MENU, true);
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 31279)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillaryPlugin.java	(revision 31280)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
+import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryHistoryDialog;
 import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryPreferenceSetting;
 import org.openstreetmap.josm.plugins.mapillary.gui.MapillaryToggleDialog;
@@ -104,4 +105,6 @@
     public void mapFrameInitialized(MapFrame oldFrame, MapFrame newFrame) {
         if (oldFrame == null && newFrame != null) { // map frame added
+            Main.map.addToggleDialog(MapillaryToggleDialog.getInstance(), false);
+            Main.map.addToggleDialog(MapillaryHistoryDialog.getInstance(), false);
         }
         if (oldFrame != null && newFrame == null) { // map frame destroyed
Index: /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/commands/MapillaryRecord.java
===================================================================
--- /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/commands/MapillaryRecord.java	(revision 31279)
+++ /applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/commands/MapillaryRecord.java	(revision 31280)
@@ -2,4 +2,6 @@
 
 import java.util.ArrayList;
+
+import org.openstreetmap.josm.plugins.mapillary.MapillaryAbstractImage;
 
 /**
@@ -45,11 +47,18 @@
     public void addCommand(MapillaryCommand command) {
         // Checks if it is a continuation of last command
-        if (position != -1
-                && commandList.get(position).images.equals(command.images)
-                && commandList.get(position).getClass() == command.getClass()) {
-            commandList.get(position).sum(command);
-            fireRecordChanged();
-            return;
+        if (position != -1) {
+            boolean equalSets = true;
+            for (MapillaryAbstractImage img : commandList.get(position).images)
+                if (!command.images.contains(img))
+                    equalSets = false;
+            if (equalSets
+                    && commandList.get(position).getClass() == command
+                            .getClass()) {
+                commandList.get(position).sum(command);
+                fireRecordChanged();
+                return;
+            }
         }
+        // Adds the command to the las position of the list.
         commandList.add(position + 1, command);
         position++;
