Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/AddTagsDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/remotecontrol/AddTagsDialog.java	(revision 16327)
+++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/AddTagsDialog.java	(revision 16328)
@@ -11,5 +11,4 @@
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
@@ -18,5 +17,4 @@
 import java.util.Map.Entry;
 import java.util.Set;
-import java.util.stream.Collectors;
 
 import javax.swing.AbstractAction;
@@ -38,4 +36,5 @@
 import org.openstreetmap.josm.gui.util.TableHelper;
 import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.TextTagParser;
 
 /**
@@ -293,14 +292,6 @@
      * @since 15316
      */
-    public static String[][] parseUrlTagsToKeyValues(String urlSection) {
-        return Arrays.stream(urlSection.split("\\|"))
-                .map(String::trim)
-                .filter(tag -> !tag.isEmpty() && tag.contains("="))
-                .map(tag -> tag.split("\\s*=\\s*", 2))
-                .map(pair -> {
-                    pair[1] = pair.length < 2 ? "" : pair[1];
-                    return pair;
-                })
-                .collect(Collectors.toList()).toArray(new String[][] {});
+    public static Map<String, String> parseUrlTagsToKeyValues(String urlSection) {
+        return TextTagParser.readTagsByRegexp(urlSection, "\\|", "(.*?)=(.*?)", false);
     }
 
@@ -313,13 +304,5 @@
      */
     public static void addTags(String[][] keyValue, String sender, Collection<? extends OsmPrimitive> primitives) {
-        if (trustedSenders.contains(sender)) {
-            if (MainApplication.getLayerManager().getEditDataSet() != null) {
-                for (String[] row : keyValue) {
-                    UndoRedoHandler.getInstance().add(new ChangePropertyCommand(primitives, row[0], row[1]));
-                }
-            }
-        } else {
-            new AddTagsDialog(keyValue, sender, primitives).showDialog();
-        }
+        new AddTagsDialog(keyValue, sender, primitives).showDialog();
     }
 }
Index: /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 16327)
+++ /trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(revision 16328)
@@ -269,7 +269,5 @@
                 DataSet ds = MainApplication.getLayerManager().getEditDataSet();
                 if (ds != null) {
-                    for (String[] key : AddTagsDialog.parseUrlTagsToKeyValues(args.get("changeset_tags"))) {
-                        ds.addChangeSetTag(key[0], key[1]);
-                    }
+                    AddTagsDialog.parseUrlTagsToKeyValues(args.get("changeset_tags")).forEach(ds::addChangeSetTag);
                 }
             });
Index: /trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/AddTagsDialogTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/AddTagsDialogTest.java	(revision 16327)
+++ /trunk/test/unit/org/openstreetmap/josm/io/remotecontrol/AddTagsDialogTest.java	(revision 16328)
@@ -4,7 +4,11 @@
 import static org.junit.Assert.assertEquals;
 
-import java.util.Arrays;
+import java.util.Map;
 
+import org.junit.Rule;
 import org.junit.Test;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -12,4 +16,10 @@
  */
 public class AddTagsDialogTest {
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
@@ -18,6 +28,8 @@
     @Test
     public void testParseUrlTagsToKeyValues() {
-        String[][] strings = AddTagsDialog.parseUrlTagsToKeyValues("wikipedia:de=Residenzschloss Dresden|name:en=Dresden Castle");
-        assertEquals("[[wikipedia:de, Residenzschloss Dresden], [name:en, Dresden Castle]]", Arrays.deepToString(strings));
+        Map<String, String> strings = AddTagsDialog.parseUrlTagsToKeyValues("wikipedia:de=Residenzschloss Dresden|name:en=Dresden Castle");
+        assertEquals(2, strings.size());
+        assertEquals("Residenzschloss Dresden", strings.get("wikipedia:de"));
+        assertEquals("Dresden Castle", strings.get("name:en"));
     }
 }
