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 23920)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressEditContainer.java	(revision 23921)
@@ -285,4 +285,35 @@
 		return unresolvedAddresses != null ? unresolvedAddresses.size() : 0;
 	}
+	
+	/**
+	 * Gets the number of guessed tags.
+	 * @return
+	 */
+	public int getNumberOfGuesses() {
+		int sum = 0;
+				
+		for (AddressNode aNode : getAllAddressesToFix()) {
+			if (aNode.hasGuesses()) {
+				sum++;
+			}
+		}
+		return sum;
+	}
+	
+	/**
+	 * Gets all (incomplete and/or unresolved) address nodes to fix.
+	 * @return
+	 */
+	public List<AddressNode> getAllAddressesToFix() {
+		List<AddressNode> all = new ArrayList<AddressNode>(incompleteAddresses);
+
+		for (AddressNode aNode : unresolvedAddresses) {
+			if (!all.contains(aNode)) {
+				all.add(aNode);
+			}
+		}
+		
+		return all; 
+	}
 
 	/**
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 23920)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/AddressNode.java	(revision 23921)
@@ -81,4 +81,19 @@
 		return !StringUtils.isNullOrEmpty(guessedStreetName);
 	}
+	
+	/**
+	 * Returns true, if this instance has guesses regarding address tags.
+	 * @return
+	 */
+	public boolean hasGuesses() {
+		return hasGuessedStreetName(); // to be extended later
+	}
+	
+	/**
+	 * Applies all guessed tags for this node.
+	 */
+	public void applyAllGuesses() {
+		if (hasGuessedStreetName()) applyGuessedStreet();
+	}
 
 	/**
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 23920)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AddressEditDialog.java	(revision 23921)
@@ -71,9 +71,11 @@
 	/* Actions */
 	private AssignAddressToStreetAction resolveAction = new AssignAddressToStreetAction();
+	private ApplyAllGuessesAction applyAllGuessesAction = new ApplyAllGuessesAction();
 	private GuessAddressDataAction guessAddressAction = new GuessAddressDataAction();
 	
 	private AbstractAddressEditAction[] actions = new AbstractAddressEditAction[] {
 		resolveAction,
-		guessAddressAction
+		guessAddressAction,
+		applyAllGuessesAction
 	};
 	private JLabel streetLabel;
@@ -125,8 +127,10 @@
 			
 			JPanel unresolvedButtons = new JPanel(new FlowLayout());
-			SideButton assign = new SideButton(resolveAction, "assignstreet_24");															   
+			SideButton assign = new SideButton(resolveAction);															   
 			unresolvedButtons.add(assign);
-			SideButton guess = new SideButton(guessAddressAction, "guessstreets_24");															   
+			SideButton guess = new SideButton(guessAddressAction);															   
 			unresolvedButtons.add(guess);
+			SideButton applyAllGuesses = new SideButton(applyAllGuessesAction);															   
+			unresolvedButtons.add(applyAllGuesses);
 			unresolvedPanel.add(unresolvedButtons, BorderLayout.SOUTH);
 			
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/ApplyAllGuessesAction.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/ApplyAllGuessesAction.java	(revision 23921)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/ApplyAllGuessesAction.java	(revision 23921)
@@ -0,0 +1,59 @@
+/*
+ * 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 static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+import java.util.List;
+
+import org.openstreetmap.josm.plugins.addressEdit.AddressEditContainer;
+import org.openstreetmap.josm.plugins.addressEdit.AddressNode;
+
+@SuppressWarnings("serial")
+public class ApplyAllGuessesAction extends AbstractAddressEditAction {
+
+	public ApplyAllGuessesAction() {
+		super(tr("Apply all guesses"), "applyguesses_24", "Turns all guesses into the corresponding tag values.");
+	}
+
+	@Override
+	public void addressEditActionPerformed(AddressEditSelectionEvent ev) {
+		// fix SELECTED items only
+		List<AddressNode> addrToFix = ev.getSelectedUnresolvedAddresses();
+		applyGuesses(addrToFix);
+	}
+
+	@Override
+	protected void updateEnabledState(AddressEditContainer container) {
+		setEnabled(container != null && container.getNumberOfGuesses() > 0);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.plugins.addressEdit.gui.AbstractAddressEditAction#actionPerformed(java.awt.event.ActionEvent)
+	 */
+	@Override
+	public void actionPerformed(ActionEvent arg0) {
+		if (container == null || container.getUnresolvedAddresses() == null) return;
+		
+		List<AddressNode> addrToFix = container.getUnresolvedAddresses();
+		applyGuesses(addrToFix);
+	}
+
+	private void applyGuesses(List<AddressNode> addrToFix) {
+		for (AddressNode aNode : addrToFix) {
+			aNode.applyAllGuesses();
+		}
+	}
+}
Index: /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AssignAddressToStreetAction.java
===================================================================
--- /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AssignAddressToStreetAction.java	(revision 23920)
+++ /applications/editors/josm/plugins/AddressEdit/src/org/openstreetmap/josm/plugins/addressEdit/gui/AssignAddressToStreetAction.java	(revision 23921)
@@ -23,5 +23,5 @@
 
 	public AssignAddressToStreetAction() {
-		super(tr("Assign address to street"));
+		super(tr("Assign address to street"), "assignstreet_24", "Assign the selected address(es) to the selected street.");
 	}
 
