             }
         }
         
+        // Find out if the ZIP code contains any letters.
+        var containsLetters:Boolean = false;
+        for (i = 0; i < len; i++)
+        {
+            if (ROMAN_LETTERS.indexOf(zip.charAt(i)) != -1)
+            {
+                containsLetters = true;
+                break;
+            }
+        }
+        
         // do an initial check on the length
-        if ((len < 5 || len > 10) || (len == 8))
+        if ((len < 5 || len > 10) || (len == 8) || 
+            (!containsLetters && (len == 6 || len == 7)))
         {
             // it's the wrong length for either a US or Canadian zip
             results.push(new ValidationResult(

}

}

    /**
     *  @private
     */
    private function validateCACode (zip:String, containsLetters:Boolean):Boolean
    {
        var len:int = zip.length;
        
        // check the basics
        if (!containsLetters)
        {
            return false;
        }
