Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/AddressEditDialog.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/AddressEditDialog.java	(revision 24113)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/AddressEditDialog.java	(revision 24114)
@@ -293,5 +293,5 @@
 		
 		AddressEditSelectionEvent ev = new AddressEditSelectionEvent(e.getSource(),
-				streetTable, unresolvedTable, editContainer);
+				streetTable, unresolvedTable, null, editContainer);
 		
 		for (AbstractAddressEditAction action : actions) {
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/AddressEditSelectionEvent.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/AddressEditSelectionEvent.java	(revision 24113)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/AddressEditSelectionEvent.java	(revision 24114)
@@ -31,4 +31,5 @@
 	private JTable streetTable;
 	private JTable unresolvedAddressTable;
+	private JTable incompleteAddressTable;
 	private AddressEditContainer addressContainer;
 	
@@ -37,12 +38,13 @@
 	 * @param source The event source.
 	 * @param selStreet The street table component.
-	 * @param unresolvedAddr The unresolved addresses table component.
+	 * @param unresolvedAddresses The unresolved addresses table component.
 	 * @param incomplete The incomplete addresses table component.
 	 * @param container The address container instance holding the entities for streets and addresses.
 	 */
-	public AddressEditSelectionEvent(Object source, JTable selStreet, JTable unresolvedAddr, AddressEditContainer container) {
+	public AddressEditSelectionEvent(Object source, JTable selStreet, JTable unresolvedAddresses, JTable incompleteAddresses, AddressEditContainer container) {
 		super(source, -1, "");
 		this.streetTable = selStreet;
-		this.unresolvedAddressTable = unresolvedAddr;
+		this.unresolvedAddressTable = unresolvedAddresses;
+		this.incompleteAddressTable = incompleteAddresses;
 		this.addressContainer = container;
 	}
@@ -63,5 +65,17 @@
 		return unresolvedAddressTable;
 	}
+	
+	/**
+	 * @return the incompleteAddressTable
+	 */
+	protected JTable getIncompleteAddressTable() {
+		return incompleteAddressTable;
+	}
 
+	/**
+	 * Gets the address container.
+	 *
+	 * @return the address container
+	 */
 	public AddressEditContainer getAddressContainer() {
 		return addressContainer;
@@ -106,3 +120,26 @@
 		return null;
 	}
+	
+	/**
+	 * Gets the selected incomplete addresses.
+	 *
+	 * @return the selected incomplete addresses
+	 */
+	public List<OSMAddress> getSelectedIncompleteAddresses() {
+		if (incompleteAddressTable != null && 
+				addressContainer != null && 
+				addressContainer.getUnresolvedAddresses() != null) {
+			
+			int[] selRows = incompleteAddressTable.getSelectedRows();
+			
+			List<OSMAddress> nodes = new ArrayList<OSMAddress>();
+			for (int i = 0; i < selRows.length; i++) {
+				if (selRows[i] >= 0 && selRows[i] < addressContainer.getNumberOfIncompleteAddresses()) {
+					nodes.add(addressContainer.getIncompleteAddresses().get(selRows[i]));
+				}
+			}
+			return nodes;
+		}
+		return null;
+	}
 }
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/IncompleteAddressesDialog.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/IncompleteAddressesDialog.java	(revision 24113)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/IncompleteAddressesDialog.java	(revision 24114)
@@ -21,4 +21,6 @@
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
 
 import org.openstreetmap.josm.data.osm.event.AbstractDatasetChangedEvent;
@@ -33,29 +35,58 @@
 import org.openstreetmap.josm.data.osm.event.WayNodesChangedEvent;
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
+import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.dialogs.ToggleDialog;
 import org.openstreetmap.josm.plugins.fixAddresses.AddressEditContainer;
+import org.openstreetmap.josm.plugins.fixAddresses.IAddressEditContainerListener;
+import org.openstreetmap.josm.plugins.fixAddresses.IOSMEntity;
+import org.openstreetmap.josm.plugins.fixAddresses.gui.actions.AbstractAddressEditAction;
+import org.openstreetmap.josm.plugins.fixAddresses.gui.actions.SelectAddressesInMapAction;
 
 @SuppressWarnings("serial")
-public class IncompleteAddressesDialog extends ToggleDialog implements DataSetListener {
+public class IncompleteAddressesDialog extends ToggleDialog implements DataSetListener, ListSelectionListener, IAddressEditContainerListener {
+	private static final String FIXED_DIALOG_TITLE = tr("Incomplete Addresses");
+
+
 	private AddressEditContainer container;
 
+	
+	private SelectAddressesInMapAction selectAction = new SelectAddressesInMapAction();
+	
+	private AbstractAddressEditAction[] actions = new AbstractAddressEditAction[]{
+			selectAction
+	};
+
+
+	private JTable incompleteAddr;
+	
 	/**
-	 * @param name
-	 * @param iconName
-	 * @param tooltip
-	 * @param shortcut
-	 * @param preferredHeight
-	 * @param container
+	 * Instantiates a new "incomplete addresses" dialog.
+	 *
 	 */
 	public IncompleteAddressesDialog() {
-		super(tr("Incomplete Addresses"), "incompleteaddress_24", tr("Show incomplete addresses"), null, 150);
+		super(FIXED_DIALOG_TITLE, "incompleteaddress_24", tr("Show incomplete addresses"), null, 150);
+		
 		this.container = new AddressEditContainer();
+		container.addChangedListener(this);
 		
 		JPanel p = new JPanel(new BorderLayout());
 		
-		JTable incompleteAddr = new JTable(new IncompleteAddressesTableModel(container));
+		incompleteAddr = new JTable(new IncompleteAddressesTableModel(container));
+		incompleteAddr.getSelectionModel().addListSelectionListener(this);
+		
 		JScrollPane sp = new JScrollPane(incompleteAddr);
 		p.add(sp, BorderLayout.CENTER);
 		this.add(p);
+		
+		JPanel buttonPanel = getButtonPanel(5);
+		
+		SideButton sb = new SideButton(selectAction);
+		buttonPanel.add(sb);
+		
+		this.add(buttonPanel, BorderLayout.SOUTH);
+		
+		for (AbstractAddressEditAction action : actions) {
+			action.setContainer(container);
+		}
 	}
 	
@@ -124,4 +155,31 @@
 		container.invalidate();		
 	}
+
+	/* (non-Javadoc)
+	 * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
+	 */
+	@Override
+	public void valueChanged(ListSelectionEvent e) {
+		AddressEditSelectionEvent event = new AddressEditSelectionEvent(e, null, null, incompleteAddr, container);
+		
+		for (AbstractAddressEditAction action : actions) {
+			action.setEvent(event);
+		}		
+	}
+
+	@Override
+	public void containerChanged(AddressEditContainer container) {
+		if (container != null && container.getNumberOfIncompleteAddresses() > 0) {
+			setTitle(String.format("%s (%d %s)", FIXED_DIALOG_TITLE, container.getNumberOfIncompleteAddresses(), tr("items")));
+		} else {
+			setTitle(String.format("%s (%s)", FIXED_DIALOG_TITLE, tr("no items")));			
+		}
+	}
+
+	@Override
+	public void entityChanged(IOSMEntity node) {
+		// TODO Auto-generated method stub
+		
+	}
 	
 	
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/AbstractAddressEditAction.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/AbstractAddressEditAction.java	(revision 24113)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/AbstractAddressEditAction.java	(revision 24114)
@@ -113,6 +113,6 @@
 			if (container != null) {
 				addressEditActionPerformed(container);
-			} else { // call super class hook
-				actionPerformed(arg0);
+			} else { 
+				throw new RuntimeException("AbstractAddressEditAction has no container or event");
 			}
 		}
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/SelectAddressesInMapAction.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/SelectAddressesInMapAction.java	(revision 24113)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/actions/SelectAddressesInMapAction.java	(revision 24114)
@@ -60,10 +60,14 @@
 		if (ev == null) return;
 		
-		internalSelectAddresses(ev.getSelectedUnresolvedAddresses());
+		if (ev.getSelectedUnresolvedAddresses() != null) {
+			internalSelectAddresses(ev.getSelectedUnresolvedAddresses());
+		} else if (ev.getSelectedIncompleteAddresses() != null) {
+			internalSelectAddresses(ev.getSelectedIncompleteAddresses());
+		}
 	}
 
 	@Override
 	public void addressEditActionPerformed(AddressEditContainer container) {
-		internalSelectAddresses(container.getUnresolvedAddresses());		
+		// do nothing		
 	}
 
@@ -73,5 +77,5 @@
 	@Override
 	protected void updateEnabledState(AddressEditContainer container) {
-		setEnabled(container != null && container.getNumberOfIncompleteAddresses() > 0);
+		setEnabled(false);
 	}
 
@@ -81,5 +85,5 @@
 	@Override
 	protected void updateEnabledState(AddressEditSelectionEvent event) {
-		setEnabled(event != null && event.getSelectedUnresolvedAddresses() != null);
+		setEnabled(event != null && (event.getSelectedUnresolvedAddresses() != null || event.getSelectedIncompleteAddresses() != null));
 	}
 
