Index: /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 627)
+++ /trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 628)
@@ -6,4 +6,5 @@
 
 import java.util.Collection;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
@@ -41,4 +42,10 @@
 	public ChangePropertyCommand(Collection<OsmPrimitive> objects, String key, String value) {
 		this.objects = new LinkedList<OsmPrimitive>(objects);
+		this.key = key;
+		this.value = value;
+	}
+
+	public ChangePropertyCommand(OsmPrimitive object, String key, String value) {
+		this.objects = new LinkedList<OsmPrimitive>(Collections.singleton(object));
 		this.key = key;
 		this.value = value;
Index: /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 627)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 628)
@@ -36,4 +36,5 @@
 import org.openstreetmap.josm.data.Preferences;
 import org.openstreetmap.josm.data.coor.EastNorth;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.DataSource;
@@ -391,3 +392,20 @@
 		}
 	}
+
+    public boolean containsPoint(LatLon coor)
+    {
+        // we'll assume that if this has no data sources
+        // that it also has no borders
+        if (this.data.dataSources.isEmpty())
+            return true;
+
+        boolean layer_bounds_point = false;
+        for (DataSource src : this.data.dataSources) {
+            if (src.bounds.contains(coor)) {
+                layer_bounds_point = true;
+                break;
+            }
+        }
+        return layer_bounds_point;
+    }
 }
