Index: applications/editors/josm/plugins/addrinterpolation/build.xml
===================================================================
--- applications/editors/josm/plugins/addrinterpolation/build.xml	(revision 17875)
+++ applications/editors/josm/plugins/addrinterpolation/build.xml	(revision 17883)
@@ -91,5 +91,5 @@
                 <attribute name="Plugin-Description" value="Group common Address Interpolation inputs in a single dialog,"/>
                 <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/wiki/JOSM/Plugins/AddrInterpolation"/>
-                <attribute name="Plugin-Mainversion" value="2100"/>
+                <attribute name="Plugin-Mainversion" value="2161"/>
                 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
             </manifest>
Index: applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java
===================================================================
--- applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java	(revision 17875)
+++ applications/editors/josm/plugins/addrinterpolation/src/org/openstreetmap/josm/plugins/AddrInterpolation/AddrInterpolationDialog.java	(revision 17883)
@@ -334,6 +334,14 @@
 				// Both end with alpha
 				SelectInterpolationMethod("alphabetic");
-			}
-
+				return;
+			}
+
+			if ( (IsNumeric("" + startingChar)) &&  (!IsNumeric("" + endingChar)) ) {
+				endingChar = Character.toUpperCase(endingChar);
+				if ( (endingChar >= 'A') && (endingChar <= 'Z') ) {
+					// First is a number, last is Latin alpha
+					SelectInterpolationMethod("alphabetic");
+				}
+			}
 
 
@@ -873,6 +881,34 @@
 			char endingChar = endValueString.charAt(endValueString.length()-1);
 
-			if ( (IsNumeric("" + startingChar)) || (IsNumeric("" + endingChar)) ) {
+
+			boolean isOk = false;
+			if ( (IsNumeric("" + startingChar)) &&  (!IsNumeric("" + endingChar)) ) {
+				endingChar = Character.toUpperCase(endingChar);
+				if ( (endingChar >= 'A') && (endingChar <= 'Z') ) {
+					// First is a number, last is Latin alpha
+					isOk = true;
+				}
+			} else if ( (!IsNumeric("" + startingChar)) && (!IsNumeric("" + endingChar)) ) {
+				// Both are alpha
+				isOk = true;
+			}
+			if (!isOk) {
 				errorMessage = tr("Alphabetic address must end with a letter");
+			}
+
+
+			// if a number is included, validate that it is the same number
+			if (endValueString.length() > 1) {
+
+				// Get number portion of first item: may or may not have letter suffix
+				String numStart = startValueString.substring(0, startValueString.length()-1);
+				if (IsNumeric(startValueString)) {
+					numStart = startValueString;
+				}
+
+				String numEnd = endValueString.substring(0, endValueString.length()-1);
+				if (!numStart.equals(numEnd)) {
+					errorMessage = tr("Starting and ending numbers must be the same for alphabetic addresses");
+				}
 			}
 
