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 24228)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMAddress.java	(revision 24229)
@@ -65,5 +65,6 @@
 		boolean isComplete = 	hasCity() && 
 								hasHouseNumber() &&
-							 	(hasPostalCode() && PostalCodeChecker.hasValidPostalCode(this)) && 
+							 	(hasPostalCode() && 
+							 	PostalCodeChecker.hasValidPostalCode(this)) && 
 								hasCity() && 
 								hasStreetName();
Index: /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/PostalCodeChecker.java
===================================================================
--- /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/PostalCodeChecker.java	(revision 24228)
+++ /applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/PostalCodeChecker.java	(revision 24229)
@@ -39,5 +39,5 @@
 		CheckParameterUtil.ensureParameterNotNull(address, "address");
 		
-		if (address.hasPostalCode()) {
+		if (!address.hasPostalCode()) {
 			return false; // no postal code available
 		}
@@ -197,5 +197,5 @@
 		//postalCodePatternMap.put("BY", "[0-9]{5}");
 		//postalCodePatternMap.put("BZ", "[0-9]{5}");
-		//postalCodePatternMap.put("CA", "[0-9]{5}");
+		postalCodePatternMap.put("CA", "[A-Z][0-9][A-Z] [0-9][A-Z][0-9]"); // Canada A9A 9A9
 		//postalCodePatternMap.put("CC", "[0-9]{5}");
 		//postalCodePatternMap.put("CD", "[0-9]{5}");
@@ -398,5 +398,5 @@
 		//postalCodePatternMap.put("UG", "[0-9]{5}");
 		//postalCodePatternMap.put("UM", "[0-9]{5}");
-		postalCodePatternMap.put("US", "[0-9]{5}");
+		postalCodePatternMap.put("US", "([A-Z]{2} )?[0-9]{5}"); // support "99999" and "IL 99999"
 		//postalCodePatternMap.put("UY", "[0-9]{5}");
 		//postalCodePatternMap.put("UZ", "[0-9]{5}");
