Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 13210)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 13212)
@@ -10,4 +10,5 @@
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Locale;
 import java.util.Set;
 import java.util.concurrent.Future;
@@ -60,4 +61,6 @@
     // Optional argument 'select'
     private final Set<SimplePrimitiveId> toSelect = new HashSet<>();
+
+    private Boolean isKeepingCurrentSelection = false;
 
     @Override
@@ -160,5 +163,5 @@
          * deselect objects if parameter addtags given
          */
-        if (args.containsKey("addtags")) {
+        if (args.containsKey("addtags") && !isKeepingCurrentSelection) {
             GuiHelper.executeByMainWorkerInEDT(() -> {
                 DataSet ds = MainApplication.getLayerManager().getEditDataSet();
@@ -185,5 +188,11 @@
                     }
                 }
+                if (isKeepingCurrentSelection) {
+                    Collection<OsmPrimitive> sel = ds.getSelected();
+                    newSel.addAll(sel);
+                    forTagAdd.addAll(sel);
+                }
                 toSelect.clear();
+                isKeepingCurrentSelection = false;
                 ds.setSelected(newSel);
                 zoom(newSel, bbox);
@@ -287,4 +296,8 @@
             for (String item : args.get("select").split(",")) {
                 if (!item.isEmpty()) {
+                    if ("currentselection".equals(item.toLowerCase(Locale.ENGLISH))) {
+                        isKeepingCurrentSelection = true;
+                        continue;
+                    }
                     try {
                         toSelect.add(SimplePrimitiveId.fromString(item));
