Index: src/org/openstreetmap/josm/io/remotecontrol/gui/AddTagsDialog.java
===================================================================
--- src/org/openstreetmap/josm/io/remotecontrol/gui/AddTagsDialog.java	(Revision 0)
+++ src/org/openstreetmap/josm/io/remotecontrol/gui/AddTagsDialog.java	(Revision 0)
@@ -0,0 +1,47 @@
+package org.openstreetmap.josm.io.remotecontrol.gui;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.util.Collection;
+
+import javax.swing.JTable;
+import javax.swing.table.TableModel;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.ChangePropertyCommand;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.gui.ExtendedDialog;
+
+
+public class AddTagsDialog extends ExtendedDialog {
+
+
+	private final JTable propertyTable;
+
+	public AddTagsDialog(String[][] tags) {
+		super(Main.parent, "", new String[] { tr("Add tags"), tr("Cancel")},
+				false,
+				true);
+
+		propertyTable = new JTable(tags, new String[] {"Key", "Value"});
+		propertyTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
+		setContent(propertyTable);
+
+
+		showDialog();
+	}
+
+	@Override
+	protected void buttonAction(int buttonIndex, ActionEvent evt) {
+		if (buttonIndex == 0) {
+			TableModel tm = propertyTable.getModel();
+			Collection<OsmPrimitive> sel = Main.main.getCurrentDataSet().getSelected();
+			for (int i=0; i<tm.getRowCount(); i++) {
+				Main.main.undoRedo.add(new ChangePropertyCommand(sel, (String)tm.getValueAt(i, 0), (String)tm.getValueAt(i, 1)));
+			}
+		}
+		setVisible(false);
+	}
+
+}
Index: src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
===================================================================
--- src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(Revision 3788)
+++ src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java	(Arbeitskopie)
@@ -5,6 +5,8 @@
 
 import java.awt.geom.Area;
 import java.awt.geom.Rectangle2D;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.HashSet;
 import java.util.concurrent.Future;
 
@@ -21,6 +23,7 @@
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.io.remotecontrol.gui.AddTagsDialog;
 
 /**
  * Handler for load_and_zoom request.
@@ -157,6 +160,23 @@
             // after downloading, zoom to downloaded area.
             zoom(minlat, maxlat, minlon, maxlon);
         }
+
+		if (args.containsKey("addtags")) {
+			String[] tags = args.get("addtags").split("\\|");
+			String[][] keyValue = new String[tags.length][2];
+			for (int i = 0; i<tags.length; i++) {
+				keyValue[i] = tags[i].split("=");
+				try {
+					keyValue[i][0] = URLDecoder.decode(keyValue[i][0], "UTF-8");
+					keyValue[i][1] = URLDecoder.decode(keyValue[i][1], "UTF-8");
+				} catch (UnsupportedEncodingException e) {
+					System.err.println("Your System has no support for UTF8.\nDamn Windows!");
+				}
+			}
+
+			new AddTagsDialog(keyValue);
+		}
+
     }
 
     protected void zoom(double minlat, double maxlat, double minlon, double maxlon) {
@@ -175,4 +195,4 @@
             });
         }
     }
-}
\ No newline at end of file
+}
