diff --git a/src/org/openstreetmap/josm/data/osm/DataSet.java b/src/org/openstreetmap/josm/data/osm/DataSet.java
index 9aead6d346..e9a4fb6157 100644
--- a/src/org/openstreetmap/josm/data/osm/DataSet.java
+++ b/src/org/openstreetmap/josm/data/osm/DataSet.java
@@ -387,7 +387,11 @@ public final class DataSet implements OsmData<OsmPrimitive, Node, Way, Relation>
      * @see #getChangeSetTags
      */
     public void addChangeSetTag(String k, String v) {
-        this.changeSetTags.put(k, v);
+        if (v != null) {
+            this.changeSetTags.put(k, v);
+        } else {
+            this.changeSetTags.remove(k);
+        }
     }
 
     @Override
diff --git a/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java b/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
index 940eba1215..16cb3974d5 100644
--- a/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
+++ b/src/org/openstreetmap/josm/io/remotecontrol/handler/LoadAndZoomHandler.java
@@ -254,7 +254,13 @@ public class LoadAndZoomHandler extends RequestHandler {
                 if (ds != null) {
                     for (String tag : Arrays.asList("changeset_comment", "changeset_source", "changeset_hashtags")) {
                         if (args.containsKey(tag)) {
-                            ds.addChangeSetTag(tag.substring("changeset_".length()), args.get(tag));
+                            final String tagKey = tag.substring("changeset_".length());
+                            final String value = args.get(tag);
+                            if (!Utils.isStripEmpty(value)) {
+                                ds.addChangeSetTag(tagKey, value);
+                            } else {
+                                ds.addChangeSetTag(tagKey, null);
+                            }
                         }
                     }
                 }
