Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMAddress.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMAddress.java	(revision 24165)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMAddress.java	(revision 24166)
@@ -57,10 +57,16 @@
 	 */
 	public boolean isComplete() {
-		return 	hasCity() && 
-				hasHouseNumber() &&
-			 	hasPostCode() && 
-				hasCity() && 
-				hasState() &&
-				hasStreetName();
+		boolean isComplete = 	hasCity() && 
+								hasHouseNumber() &&
+							 	hasPostCode() && 
+								hasCity() && 
+								hasStreetName();
+		
+		// Check, if "addr:state" is required (US and AU)
+		if (TagUtils.isStateRequired()) {
+			isComplete = isComplete && hasState();
+		}
+		
+		return isComplete;
 	}
 	
@@ -406,5 +412,5 @@
 				needsGuessedValue(TagUtils.ADDR_POSTCODE_TAG) ||
 				needsGuessedValue(TagUtils.ADDR_COUNTRY_TAG) ||
-				needsGuessedValue(TagUtils.ADDR_STATE_TAG) ||
+				//needsGuessedValue(TagUtils.ADDR_STATE_TAG) ||
 				needsGuessedValue(TagUtils.ADDR_STREET_TAG);
 	}
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OsmUtils.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OsmUtils.java	(revision 24165)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OsmUtils.java	(revision 24166)
@@ -15,4 +15,5 @@
 
 import java.util.List;
+import java.util.Locale;
 
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -29,4 +30,6 @@
 public class OsmUtils {
 	private OsmUtils() {}
+	
+	private static String cachedLocale = null;
 	
 	/**
@@ -146,4 +149,18 @@
 		return false;
 	}
+	
+	/**
+	 * Gets the locale code as string.
+	 *
+	 * @return the locale
+	 */
+	public static String getLocale() {
+		// Check if user could prefer imperial system
+		if (cachedLocale == null) {
+			Locale l = Locale.getDefault();
+			cachedLocale = l.toString();
+		}
+		return cachedLocale;
+	}
 
 	private static void applyDerivedValue(OSMAddress address, Way w, String tag) {
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/TagUtils.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/TagUtils.java	(revision 24165)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/TagUtils.java	(revision 24166)
@@ -27,4 +27,8 @@
  */
 public final class TagUtils {
+	private static String COUNTRIES_REQUIRE_STATE[] = {
+		"en_US", 	/* USA */
+		"en_AU"	/* Australia */
+	};
 	
 	/**
@@ -1946,4 +1950,23 @@
 	public static boolean isHouseMember(RelationMember relMember) {
 		return relMember != null && STREET_RELATION_ROLE.equals(relMember.getRole());
+	}
+	
+	
+	
+	/**
+	 * Checks if "addr:state" tag is required.
+	 *
+	 * @return true, if is state required
+	 */
+	public static boolean isStateRequired() {
+		String loc = OsmUtils.getLocale();
+		
+		for (int i = 0; i < COUNTRIES_REQUIRE_STATE.length; i++) {			
+			if (COUNTRIES_REQUIRE_STATE[i].equals(loc)) {
+				return true;
+			}
+		}
+		
+		return false;
 	}
 
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/IncompleteAddressesTableModel.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/IncompleteAddressesTableModel.java	(revision 24165)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/gui/IncompleteAddressesTableModel.java	(revision 24166)
@@ -26,6 +26,7 @@
 	private static final long serialVersionUID = -5951629033395186324L;
 	
-	private static final int NUMBER_OF_COLUMNS = 6;
-	private static final String[] COLUMN_NAMES = new String[]{tr("Country"), tr("State"), tr("City"), tr("Post Code"), tr("Street"), tr("Number")}; 
+	// TODO: Add "state" colum, if required
+	private static final int NUMBER_OF_COLUMNS = 5;
+	private static final String[] COLUMN_NAMES = new String[]{tr("Country"), tr("City"), tr("Postcode"), tr("Street"), tr("Number")}; 
 	private static final Class<?>[] COLUMN_CLASSES = new Class<?>[]{
 		String.class, String.class, String.class, String.class, String.class, String.class};
@@ -33,5 +34,7 @@
 	
 	/**
-	 * @param addressContainer
+	 * Instantiates a new incomplete addresses table model.
+	 *
+	 * @param addressContainer the address container used for display
 	 */
 	public IncompleteAddressesTableModel(AddressEditContainer addressContainer) {
@@ -39,10 +42,15 @@
 	}
 
+	/* (non-Javadoc)
+	 * @see javax.swing.table.DefaultTableModel#getColumnCount()
+	 */
 	@Override
 	public int getColumnCount() {
-		// TODO Auto-generated method stub
 		return NUMBER_OF_COLUMNS;
 	}
 
+	/* (non-Javadoc)
+	 * @see javax.swing.table.DefaultTableModel#getColumnName(int)
+	 */
 	@Override
 	public String getColumnName(int column) {
@@ -50,4 +58,7 @@
 	}
 
+	/* (non-Javadoc)
+	 * @see javax.swing.table.DefaultTableModel#getRowCount()
+	 */
 	@Override
 	public int getRowCount() {
@@ -58,4 +69,7 @@
 	}
 
+	/* (non-Javadoc)
+	 * @see javax.swing.table.DefaultTableModel#getValueAt(int, int)
+	 */
 	@Override
 	public Object getValueAt(int row, int column) {		
@@ -70,12 +84,10 @@
 			return aNode.getCountry();
 		case 1:
-			return aNode.getState();
+			return aNode.getCity();
 		case 2:
-			return aNode.getCity();
+			return aNode.getPostCode();
 		case 3:
-			return aNode.getPostCode();
+			return aNode.getStreetName();			
 		case 4:
-			return aNode.getStreetName();			
-		case 5:
 			return aNode.getHouseNumber();
 		default:
@@ -85,4 +97,7 @@
 	}
 	
+	/* (non-Javadoc)
+	 * @see javax.swing.table.AbstractTableModel#getColumnClass(int)
+	 */
 	@Override
 	public Class<?> getColumnClass(int arg0) {
@@ -90,4 +105,7 @@
 	}
 
+	/* (non-Javadoc)
+	 * @see javax.swing.table.DefaultTableModel#isCellEditable(int, int)
+	 */
 	@Override
 	public boolean isCellEditable(int row, int column) {
@@ -96,4 +114,7 @@
 	}
 
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.plugins.fixAddresses.gui.AddressEditTableModel#getEntityOfRow(int)
+	 */
 	@Override
 	public IOSMEntity getEntityOfRow(int row) {
@@ -107,4 +128,7 @@
 	}
 
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.plugins.fixAddresses.gui.AddressEditTableModel#getRowOfEntity(org.openstreetmap.josm.plugins.fixAddresses.IOSMEntity)
+	 */
 	@Override
 	public int getRowOfEntity(IOSMEntity entity) {
