Index: plications/editors/josm/plugins/AddressEdit/.externalToolBuilders/org.eclipse.jdt.core.javabuilder (2).launch
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/.externalToolBuilders/org.eclipse.jdt.core.javabuilder (2).launch	(revision 23883)
+++ 	(revision )
@@ -1,7 +1,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
-<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="org.eclipse.jdt.core.javabuilder"/>
-<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
-<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
-</launchConfiguration>
Index: /applications/editors/josm/plugins/AddressEdit/.project
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/.project	(revision 23883)
+++ /applications/editors/josm/plugins/AddressEdit/.project	(revision 23884)
@@ -7,11 +7,6 @@
 	<buildSpec>
 		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<triggers>full,incremental,</triggers>
+			<name>org.eclipse.jdt.core.javabuilder</name>
 			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/org.eclipse.jdt.core.javabuilder (2).launch</value>
-				</dictionary>
 			</arguments>
 		</buildCommand>
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditAction.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditAction.java	(revision 23883)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditAction.java	(revision 23884)
@@ -10,4 +10,5 @@
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.data.SelectionChangedListener;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.plugins.addressEdit.gui.AddressEditDialog;
@@ -21,4 +22,5 @@
 	private static final long serialVersionUID = 1L;
 	private AddressEditContainer addressEditContainer;
+	private Collection<? extends OsmPrimitive> newSelection;
 
 	public AddressEditAction() {
@@ -31,18 +33,26 @@
 		setEnabled(false);
 		
+		addressEditContainer = new AddressEditContainer();
+		DataSet.addSelectionListener(this);		
 	}
 
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.data.SelectionChangedListener#selectionChanged(java.util.Collection)
+	 */
 	@Override
 	public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
-		synchronized (this) {
-			collectAddressesAndStreets(newSelection);
+		this.newSelection = newSelection;
+		if (addressEditContainer != null) {
+			addressEditContainer.invalidate(newSelection);
 		}
 	}
 
+	/* (non-Javadoc)
+	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
+	 */
 	@Override
-	public void actionPerformed(ActionEvent arg0) {
-		addressEditContainer = new AddressEditContainer();
+	public void actionPerformed(ActionEvent arg0) {		
 		if (addressEditContainer != null) {
-			addressEditContainer.attachToDataSet();
+			addressEditContainer.attachToDataSet(newSelection);
 			try {
 				AddressEditDialog dlg = new AddressEditDialog(addressEditContainer);
@@ -53,13 +63,9 @@
 		}
 	}
+	
 
-	private void collectAddressesAndStreets(
-			final Collection<? extends OsmPrimitive> osmData) {
-		if (osmData == null || osmData.isEmpty())
-			return;
-
-		
-	}
-
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.actions.JosmAction#updateEnabledState()
+	 */
 	@Override
 	protected void updateEnabledState() {
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditContainer.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditContainer.java	(revision 23883)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditContainer.java	(revision 23884)
@@ -130,4 +130,6 @@
 		if (newSegment != null) {
 			String name = newSegment.getName();
+			if (StringUtils.isNullOrEmpty(name)) return;
+			
 			StreetNode sNode = null;
 			if (streetDict.containsKey(name)) {
@@ -293,7 +295,11 @@
 	 * be called immediately before an edit session starts.
 	 */
-	public void attachToDataSet() {
+	public void attachToDataSet(Collection<? extends OsmPrimitive> dataToExamine) {		
 		Main.main.getCurrentDataSet().addDataSetListener(this);
-		invalidate();
+		if (dataToExamine != null && dataToExamine.size() > 0) {
+			invalidate(dataToExamine); // use given data set (usually the current selection)
+		} else {
+			invalidate(); // use current data set
+		}
 	}
 	
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesTableModel.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesTableModel.java	(revision 23883)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesTableModel.java	(revision 23884)
@@ -15,5 +15,4 @@
 
 import static org.openstreetmap.josm.tools.I18n.tr;
-
 
 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer;
