Index: trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 4301)
+++ trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 4302)
@@ -6,4 +6,5 @@
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
@@ -45,6 +46,6 @@
         this.objects = new LinkedList<OsmPrimitive>();
         this.key = key;
-        this.value = value;
-        if (value == null) {
+        this.value = (value == null || value.isEmpty()) ? null : value;
+        if (this.value == null) {
             for (OsmPrimitive osm : objects) {
                 if(osm.get(key) != null) {
@@ -55,5 +56,5 @@
             for (OsmPrimitive osm : objects) {
                 String val = osm.get(key);
-                if (val == null || !value.equals(val)) {
+                if (val == null || !this.value.equals(val)) {
                     this.objects.add(osm);
                 }
@@ -63,12 +64,5 @@
 
     public ChangePropertyCommand(OsmPrimitive object, String key, String value) {
-        this.objects = new LinkedList<OsmPrimitive>();
-        this.key = key;
-        this.value = value;
-        String val = object.get(key);
-        if ((value == null && val != null)
-                || (value != null && (val == null || !value.equals(val)))) {
-            this.objects.add(object);
-        }
+        this(Arrays.asList(object), key, value);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 4301)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 4302)
@@ -1495,7 +1495,5 @@
         List<Command> cmds = new ArrayList<Command>();
         for (Tag tag: changedTags) {
-            if (!tag.getValue().isEmpty()) {
-                cmds.add(new ChangePropertyCommand(sel, tag.getKey(), tag.getValue()));
-            }
+            cmds.add(new ChangePropertyCommand(sel, tag.getKey(), tag.getValue()));
         }
 
