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 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditAction.java	(revision 23916)
@@ -8,5 +8,4 @@
 import java.util.Collection;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.data.SelectionChangedListener;
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressNode.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressNode.java	(revision 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressNode.java	(revision 23916)
@@ -15,5 +15,4 @@
 
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
-import org.openstreetmap.josm.plugins.addressEdit.gui.GuessAddressDataAction;
 
 public class AddressNode extends NodeEntityBase {
@@ -77,4 +76,8 @@
 		this.guessedStreetName = guessedStreetName;
 		fireEntityChanged(this);
+	}
+	
+	public boolean hasGuessedStreetName() {
+		return !StringUtils.isNullOrEmpty(guessedStreetName);
 	}
 
@@ -176,6 +179,9 @@
 	}
 	
+	/**
+	 * Applies the guessed street name to the addr:street tag value.
+	 */
 	public void applyGuessedStreet() {
-		if (!StringUtils.isNullOrEmpty(getGuessedStreetName())) {
+		if (hasGuessedStreetName()) {
 			setOSMTag(TagUtils.ADDR_STREET_TAG, guessedStreetName);
 		}
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/NodeEntityBase.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/NodeEntityBase.java	(revision 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/NodeEntityBase.java	(revision 23916)
@@ -112,4 +112,5 @@
 		newNode.put(tag, newValue);
 		Main.main.undoRedo.add( new ChangeCommand(oldNode, newNode));
+		fireEntityChanged(this);
 	}
 
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditDialog.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditDialog.java	(revision 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditDialog.java	(revision 23916)
@@ -115,4 +115,5 @@
 			unresolvedTable.getSelectionModel().addListSelectionListener(this);
 			unresolvedTable.getSelectionModel().addListSelectionListener(new IncompleteAddressListener());
+			unresolvedTable.addMouseListener(new IncompleteAddressesMouseListener());			
 			
 			JScrollPane scroll2 = new JScrollPane(unresolvedTable);
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditTableModel.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditTableModel.java	(revision 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditTableModel.java	(revision 23916)
@@ -20,5 +20,5 @@
 import org.openstreetmap.josm.plugins.addressEdit.INodeEntity;
 
-public class AddressEditTableModel extends DefaultTableModel implements IAddressEditContainerListener{
+public abstract class AddressEditTableModel extends DefaultTableModel implements IAddressEditContainerListener{
 
 	/**
@@ -43,3 +43,10 @@
 		fireTableDataChanged();
 	}
+	
+	/**
+	 * Gets the node entity for the given row or null; if row contains no entity.
+	 * @param row The row to get the entity object for.
+	 * @return
+	 */
+	public abstract INodeEntity getEntityOfRow(int row);
 }
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesMouseListener.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesMouseListener.java	(revision 23916)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesMouseListener.java	(revision 23916)
@@ -0,0 +1,70 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under 
+ * the terms of the GNU General Public License as published by the 
+ * Free Software Foundation, either version 3 of the License, or 
+ * (at your option) any later version. 
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
+ * See the GNU General Public License for more details. 
+ * 
+ * You should have received a copy of the GNU General Public License along with this program. 
+ * If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.openstreetmap.josm.plugins.addressEdit.gui;
+
+import java.awt.Point;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+
+import javax.swing.JTable;
+
+import org.openstreetmap.josm.plugins.addressEdit.AddressNode;
+import org.openstreetmap.josm.plugins.addressEdit.INodeEntity;
+
+public class IncompleteAddressesMouseListener implements MouseListener {
+
+	@Override
+	public void mouseClicked(MouseEvent e) {
+		JTable table = (JTable)e.getSource();
+		Point p = e.getPoint();
+		if(e.getClickCount() == 2) {						
+			AddressEditTableModel model = (AddressEditTableModel) table.getModel();
+			if (model != null) {
+				int row = table.rowAtPoint(p);
+				INodeEntity node = model.getEntityOfRow(row);
+				if (node instanceof AddressNode) {
+					AddressNode aNode = (AddressNode) node;
+					if (aNode.hasGuessedStreetName()) {
+						aNode.applyGuessedStreet();
+					}
+				}
+			}
+		}
+	}
+
+	@Override
+	public void mouseEntered(MouseEvent arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mouseExited(MouseEvent arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mousePressed(MouseEvent arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mouseReleased(MouseEvent arg0) {
+		// TODO Auto-generated method stub
+
+	}
+
+}
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 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/IncompleteAddressesTableModel.java	(revision 23916)
@@ -18,4 +18,5 @@
 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer;
 import org.openstreetmap.josm.plugins.addressEdit.AddressNode;
+import org.openstreetmap.josm.plugins.addressEdit.INodeEntity;
 import org.openstreetmap.josm.plugins.addressEdit.StringUtils;
 
@@ -58,12 +59,10 @@
 
 	@Override
-	public Object getValueAt(int row, int column) {
-		if (addressContainer == null || addressContainer.getIncompleteAddresses() == null) {
+	public Object getValueAt(int row, int column) {		
+		AddressNode aNode = (AddressNode) getEntityOfRow(row);
+		
+		if (aNode == null) {
 			return null;
 		}
-		if (row < 0 || row > addressContainer.getNumberOfIncompleteAddresses()) {
-			return null;
-		}
-		AddressNode aNode = addressContainer.getIncompleteAddresses().get(row);
 		
 		switch (column) {
@@ -100,3 +99,14 @@
 		return false;
 	}
+
+	@Override
+	public INodeEntity getEntityOfRow(int row) {
+		if (addressContainer == null || addressContainer.getIncompleteAddresses() == null) {
+			return null;
+		}
+		if (row < 0 || row > addressContainer.getNumberOfIncompleteAddresses()) {
+			return null;
+		}
+		return addressContainer.getIncompleteAddresses().get(row);
+	}
 }
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/StreetTableModel.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/StreetTableModel.java	(revision 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/StreetTableModel.java	(revision 23916)
@@ -17,4 +17,5 @@
 
 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer;
+import org.openstreetmap.josm.plugins.addressEdit.INodeEntity;
 import org.openstreetmap.josm.plugins.addressEdit.StreetNode;
 
@@ -77,12 +78,10 @@
 	 */
 	@Override
-	public Object getValueAt(int row, int column) {
-		if (addressContainer == null || addressContainer.getStreetList() == null) {
+	public Object getValueAt(int row, int column) {		
+		StreetNode sNode = (StreetNode) getEntityOfRow(row);
+		
+		if (sNode == null) {
 			return null;
 		}
-		if (row < 0 || row > addressContainer.getNumberOfStreets()) {
-			return null;
-		}
-		StreetNode sNode = addressContainer.getStreetList().get(row);
 		
 		switch (column) {
@@ -106,3 +105,14 @@
 		return false;
 	}
+
+	@Override
+	public INodeEntity getEntityOfRow(int row) {
+		if (addressContainer == null || addressContainer.getStreetList() == null) {
+			return null;
+		}
+		if (row < 0 || row > addressContainer.getNumberOfStreets()) {
+			return null;
+		}
+		return addressContainer.getStreetList().get(row);	
+	}
 }
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/UnresolvedAddressesTableModel.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/UnresolvedAddressesTableModel.java	(revision 23915)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/UnresolvedAddressesTableModel.java	(revision 23916)
@@ -33,5 +33,5 @@
 import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer;
 import org.openstreetmap.josm.plugins.addressEdit.AddressNode;
-import org.openstreetmap.josm.plugins.addressEdit.StringUtils;
+import org.openstreetmap.josm.plugins.addressEdit.INodeEntity;
 
 /**
@@ -83,11 +83,9 @@
 	@Override
 	public Object getValueAt(int row, int column) {
-		if (addressContainer == null || addressContainer.getUnresolvedAddresses() == null) {
+		AddressNode aNode = (AddressNode) getEntityOfRow(row);
+		
+		if (aNode == null) {
 			return null;
 		}
-		if (row < 0 || row > addressContainer.getNumberOfUnresolvedAddresses()) {
-			return null;
-		}
-		AddressNode aNode = addressContainer.getUnresolvedAddresses().get(row);
 		
 		switch (column) {
@@ -95,7 +93,5 @@
 			String guessed = aNode.getGuessedStreetName();
 			String cur = aNode.getStreet();
-			if (!StringUtils.isNullOrEmpty(guessed) && 
-					AddressNode.MISSING_TAG.equals(cur)) {
-				
+			if (aNode.hasGuessedStreetName() && AddressNode.MISSING_TAG.equals(cur)) {				
 				return "*" + guessed;
 			} else {
@@ -126,3 +122,14 @@
 		return false;
 	}
+
+	@Override
+	public INodeEntity getEntityOfRow(int row) {
+		if (addressContainer == null || addressContainer.getUnresolvedAddresses() == null) {
+			return null;
+		}
+		if (row < 0 || row > addressContainer.getNumberOfUnresolvedAddresses()) {
+			return null;
+		}
+		return addressContainer.getUnresolvedAddresses().get(row);	
+	}
 }
