ICU-21018 Fix typos across repo that start with letter C

See #1525
diff --git a/docs/userguide/datetime/calendar/examples.md b/docs/userguide/datetime/calendar/examples.md
index 09429b1..da5ffb6 100644
--- a/docs/userguide/datetime/calendar/examples.md
+++ b/docs/userguide/datetime/calendar/examples.md
@@ -143,7 +143,7 @@
 UDate time;
 Calendar *cal1, *cal2;
 // Create a new Gregorian Calendar.
-cal1 = Calendar::createInstance("en_US@calender=gregorian", status);
+cal1 = Calendar::createInstance("en_US@calendar=gregorian", status);
 if (U_FAILURE(status)) {
     printf("Error creating Gregorian calendar.\n");
     return;
diff --git a/docs/userguide/icufaq/index.md b/docs/userguide/icufaq/index.md
index a5c82f4..ed17113 100644
--- a/docs/userguide/icufaq/index.md
+++ b/docs/userguide/icufaq/index.md
@@ -130,7 +130,7 @@
     item changes, new support is added, or if a country changes its currency.
     Try not to depend on specific translations, or be prepared to change test
     cases. Also, a newer version may support additional translations,
-    currencies, types of calenders
+    currencies, types of calendars
 *   **Building/Deploying your Application (ICU4C):** ICU4C usually builds with
     symbol renaming (See:
     [binary compatibility](../design#icu-binary-compatibility)
diff --git a/icu4c/source/common/ucase.cpp b/icu4c/source/common/ucase.cpp
index 2b142f5..4f4c274 100644
--- a/icu4c/source/common/ucase.cpp
+++ b/icu4c/source/common/ucase.cpp
@@ -681,7 +681,7 @@
  *   - In [CoreProps], C has one of the properties Uppercase, or Lowercase
  *   - Given D = NFD(C), then it is not the case that:
  *     D = UCD_lower(D) = UCD_upper(D) = UCD_title(D)
- *     (This third criterium does not add any characters to the list
+ *     (This third criterion does not add any characters to the list
  *      for Unicode 3.2. Ignored.)
  *
  * D2. A character C is defined to be case-ignorable
diff --git a/icu4c/source/common/ucnv2022.cpp b/icu4c/source/common/ucnv2022.cpp
index 169ad4c..0d22239 100644
--- a/icu4c/source/common/ucnv2022.cpp
+++ b/icu4c/source/common/ucnv2022.cpp
@@ -820,7 +820,7 @@
     return INVALID_2022;
 }
 
-/*runs through a state machine to determine the escape sequence - codepage correspondance
+/*runs through a state machine to determine the escape sequence - codepage correspondence
  */
 static void
 changeState_2022(UConverter* _this,
diff --git a/icu4c/source/common/ucnv_lmb.cpp b/icu4c/source/common/ucnv_lmb.cpp
index 1683928..41317d1 100644
--- a/icu4c/source/common/ucnv_lmb.cpp
+++ b/icu4c/source/common/ucnv_lmb.cpp
@@ -81,7 +81,7 @@
   [G] D1 [D2]
 
   That is, a sometimes-optional 'group' byte, followed by 1 and sometimes 2
-  data bytes. The maximum size of a LMBCS chjaracter is 3 bytes:
+  data bytes. The maximum size of a LMBCS character is 3 bytes:
 */
 #define ULMBCS_CHARSIZE_MAX      3
 /*
@@ -164,7 +164,7 @@
 /* Then we needed a place to put all the other ansi control characters 
 that must be moved to different values because LMBCS reserves those 
 values for other purposes. To represent the control characters, we start 
-with a first byte of 0xF & add the control chaarcter value as the 
+with a first byte of 0xF & add the control character value as the 
 second byte */
 #define ULMBCS_GRP_CTRL       0x0F   
 
diff --git a/icu4c/source/common/ucnv_u7.cpp b/icu4c/source/common/ucnv_u7.cpp
index 87ba8cf..de9f3f4 100644
--- a/icu4c/source/common/ucnv_u7.cpp
+++ b/icu4c/source/common/ucnv_u7.cpp
@@ -814,7 +814,7 @@
  *       the use of "~" in some servers as a home directory indicator.
  *
  *    5) UTF-7 permits multiple alternate forms to represent the same
- *       string; in particular, printable US-ASCII chararacters can be
+ *       string; in particular, printable US-ASCII characters can be
  *       represented in encoded form.
  *
  * In modified UTF-7, printable US-ASCII characters except for "&"
diff --git a/icu4c/source/common/ucnvisci.cpp b/icu4c/source/common/ucnvisci.cpp
index 44a7c05..d8a1348 100644
--- a/icu4c/source/common/ucnvisci.cpp
+++ b/icu4c/source/common/ucnvisci.cpp
@@ -992,7 +992,7 @@
                     
                     if (converterData->currentDeltaFromUnicode == PNJ_DELTA) { 
                         if (sourceChar == PNJ_TIPPI) {
-                            /* Make sure Tippi is converterd to Bindi. */
+                            /* Make sure Tippi is converted to Bindi. */
                             sourceChar = PNJ_BINDI;
                         } else if (sourceChar == PNJ_ADHAK) {
                             /* This is for consonant cluster handling. */
diff --git a/icu4c/source/common/ucurr.cpp b/icu4c/source/common/ucurr.cpp
index 0e14cdd..20bbd51 100644
--- a/icu4c/source/common/ucurr.cpp
+++ b/icu4c/source/common/ucurr.cpp
@@ -844,7 +844,7 @@
 #endif
 
 
-// Comparason function used in quick sort.
+// Comparison function used in quick sort.
 static int U_CALLCONV currencyNameComparator(const void* a, const void* b) {
     const CurrencyNameStruct* currName_1 = (const CurrencyNameStruct*)a;
     const CurrencyNameStruct* currName_2 = (const CurrencyNameStruct*)b;
@@ -1530,7 +1530,7 @@
 
     int32_t max = 0;
     int32_t matchIndex = -1;
-    // case in-sensitive comparision against currency names
+    // case in-sensitive comparison against currency names
     searchCurrencyName(currencyNames, total_currency_name_count, 
                        upperText, textLen, partialMatchLen, &max, &matchIndex);
 
diff --git a/icu4c/source/common/uloc_keytype.cpp b/icu4c/source/common/uloc_keytype.cpp
index 019da05..c289ebe 100644
--- a/icu4c/source/common/uloc_keytype.cpp
+++ b/icu4c/source/common/uloc_keytype.cpp
@@ -271,7 +271,7 @@
                         if (U_FAILURE(sts)) {
                             break;
                         }
-                        // check if this is an alias of canoncal legacy type
+                        // check if this is an alias of canonical legacy type
                         if (uprv_compareInvWithUChar(NULL, legacyTypeId, -1, to, toLen) == 0) {
                             const char* from = ures_getKey(typeAliasDataEntry.getAlias());
                             if (isTZ) {
diff --git a/icu4c/source/common/unicode/ucnv.h b/icu4c/source/common/unicode/ucnv.h
index 58f271c..cf4d176 100644
--- a/icu4c/source/common/unicode/ucnv.h
+++ b/icu4c/source/common/unicode/ucnv.h
@@ -1699,7 +1699,7 @@
 
 /**
  * Gets the canonical converter name of the specified converter from a list of
- * all available converters contaied in the alias file. All converters
+ * all available converters contained in the alias file. All converters
  * in this list can be opened.
  *
  * @param n the index to a converter available on the system (in the range <TT>[0..ucnv_countAvaiable()]</TT>)
diff --git a/icu4c/source/common/unicode/ushape.h b/icu4c/source/common/unicode/ushape.h
index fed4869..14371ed 100644
--- a/icu4c/source/common/unicode/ushape.h
+++ b/icu4c/source/common/unicode/ushape.h
@@ -323,7 +323,7 @@
 #define U_SHAPE_PRESERVE_PRESENTATION           0x8000
 /** Presentation form option: 
  * Replace Arabic Presentation Forms-A and Arabic Presentationo Forms-B with 
- * their unshaped correspondants in range 0+06xx, before shaping.
+ * their unshaped correspondents in range 0+06xx, before shaping.
  * @stable ICU 3.6 
  */
 #define U_SHAPE_PRESERVE_PRESENTATION_NOOP      0
diff --git a/icu4c/source/common/uresbund.cpp b/icu4c/source/common/uresbund.cpp
index 2ece878..e95e961 100644
--- a/icu4c/source/common/uresbund.cpp
+++ b/icu4c/source/common/uresbund.cpp
@@ -3019,7 +3019,7 @@
 U_CAPI UBool U_EXPORT2
 ures_equal(const UResourceBundle* res1, const UResourceBundle* res2){
     if(res1==NULL || res2==NULL){
-        return res1==res2; /* pointer comparision */
+        return res1==res2; /* pointer comparison */
     }
     if(res1->fKey==NULL||  res2->fKey==NULL){
         return (res1->fKey==res2->fKey);
diff --git a/icu4c/source/common/usprep.cpp b/icu4c/source/common/usprep.cpp
index 8351a77..874ffc6 100644
--- a/icu4c/source/common/usprep.cpp
+++ b/icu4c/source/common/usprep.cpp
@@ -575,7 +575,7 @@
             }
 
         }else if(type==USPREP_DELETE){
-             // just consume the codepoint and contine
+             // just consume the codepoint and continue
             continue;
         }
         //copy the code point into destination
diff --git a/icu4c/source/common/utext.cpp b/icu4c/source/common/utext.cpp
index 763b668..d79f814 100644
--- a/icu4c/source/common/utext.cpp
+++ b/icu4c/source/common/utext.cpp
@@ -382,7 +382,7 @@
     //
     UChar32     cPrev;    // The character preceding cCurr, which is what we will return.
 
-    // Address the chunk containg the position preceding the incoming index
+    // Address the chunk containing the position preceding the incoming index
     // A tricky edge case:
     //   We try to test the requested native index against the chunkNativeStart to determine
     //    whether the character preceding the one at the index is in the current chunk.
@@ -894,7 +894,7 @@
                                                      //    one for a supplementary starting in the last normal position,
                                                      //    and one for an entry for the buffer limit position.
     uint8_t   mapToUChars[UTF8_TEXT_CHUNK_SIZE*3+6]; // Map native offset from bufNativeStart to
-                                                     //   correspoding offset in filled part of buf.
+                                                     //   corresponding offset in filled part of buf.
     int32_t   align;
 };
 
@@ -1545,7 +1545,7 @@
 }
 
 //
-// Map a native index to the corrsponding chunk offset
+// Map a native index to the corresponding chunk offset
 //
 static int32_t U_CALLCONV
 utf8TextMapIndexToUTF16(const UText *ut, int64_t index64) {
diff --git a/icu4c/source/common/utracimp.h b/icu4c/source/common/utracimp.h
index f32fe1d..945540d 100644
--- a/icu4c/source/common/utracimp.h
+++ b/icu4c/source/common/utracimp.h
@@ -193,7 +193,7 @@
  * Trace statement for each exit point of a function that has a UTRACE_ENTRY()
  * statement, and that returns a value.
  *
- * @param val       The function's return value, int32_t or comatible type.
+ * @param val       The function's return value, int32_t or compatible type.
  *
  * @internal 
  */
diff --git a/icu4c/source/common/uvector.cpp b/icu4c/source/common/uvector.cpp
index cf19edf..9c7e74c 100644
--- a/icu4c/source/common/uvector.cpp
+++ b/icu4c/source/common/uvector.cpp
@@ -312,7 +312,7 @@
     } else {
         for (i=startIndex; i<count; ++i) {
             /* Pointers are not always the same size as ints so to perform
-             * a valid comparision we need to know whether we are being
+             * a valid comparison we need to know whether we are being
              * provided an int or a pointer. */
             if (hint & HINT_KEY_POINTER) {
                 if (key.pointer == elements[i].pointer) {
@@ -518,7 +518,7 @@
 }
 
 /**
-  * Sort the vector, assuming it constains ints.
+  * Sort the vector, assuming it contains ints.
   *     (A more general sort would take a comparison function, but it's
   *     not clear whether UVector's UElementComparator or
   *     UComparator from uprv_sortAray would be more appropriate.)
diff --git a/icu4c/source/extra/uconv/resources/root.txt b/icu4c/source/extra/uconv/resources/root.txt
index 9b241e0..785479f 100644
--- a/icu4c/source/extra/uconv/resources/root.txt
+++ b/icu4c/source/extra/uconv/resources/root.txt
@@ -83,7 +83,7 @@
   cantSetOutBinMode { "Couldn't set standard output to binary mode." }
 
   cantOpenFromCodeset { "Couldn''t open converter for original encoding {0}: {1}.\n" } // 0:set, 1: err
-  cantOpenToCodeset { "Couldn''t open converteur for destination encoding {0}: {1}.\n" } // 0: set, 1: err
+  cantOpenToCodeset { "Couldn''t open converter for destination encoding {0}: {1}.\n" } // 0: set, 1: err
 
   cantCreateTranslit { "Couldn''t create transliteration \"{0}\": {1}.\n" } // 0: set, 1: err
   cantCreateTranslitParseErr { "Couldn''t create transliteration \"{0}\": {1}, line {2}, offset {3}.\n" } // 0: set, 1: err, 2: line, 3: offset
diff --git a/icu4c/source/i18n/calendar.cpp b/icu4c/source/i18n/calendar.cpp
index c3e5e8c..9c1b102 100644
--- a/icu4c/source/i18n/calendar.cpp
+++ b/icu4c/source/i18n/calendar.cpp
@@ -308,7 +308,7 @@
 
     calTypeBuf[0] = 0;
     if (U_SUCCESS(status) && order != NULL) {
-        // the first calender type is the default for the region
+        // the first calendar type is the default for the region
         int32_t len = 0;
         const UChar *uCalType = ures_getStringByIndex(order, 0, &len, &status);
         if (len < (int32_t)sizeof(calTypeBuf)) {
diff --git a/icu4c/source/i18n/csrmbcs.cpp b/icu4c/source/i18n/csrmbcs.cpp
index 5579ba8..eb2d635 100644
--- a/icu4c/source/i18n/csrmbcs.cpp
+++ b/icu4c/source/i18n/csrmbcs.cpp
@@ -186,7 +186,7 @@
         if (doubleByteCharCount == 0 && totalCharCount < 10) {
             // There weren't any multibyte sequences, and there was a low density of non-ASCII single bytes.
             // We don't have enough data to have any confidence.
-            // Statistical analysis of single byte non-ASCII charcters would probably help here.
+            // Statistical analysis of single byte non-ASCII characters would probably help here.
             confidence = 0;
         }
         else {
diff --git a/icu4c/source/i18n/csrucode.cpp b/icu4c/source/i18n/csrucode.cpp
index 59f2dbe..abbca08 100644
--- a/icu4c/source/i18n/csrucode.cpp
+++ b/icu4c/source/i18n/csrucode.cpp
@@ -155,7 +155,7 @@
     } else if (numValid > 0 && numInvalid == 0) {
         confidence = 80;
     } else if (numValid > numInvalid*10) {
-        // Probably corruput UTF-32BE data.  Valid sequences aren't likely by chance.
+        // Probably corrupt UTF-32BE data.  Valid sequences aren't likely by chance.
         confidence = 25;
     }
 
diff --git a/icu4c/source/i18n/csrutf8.cpp b/icu4c/source/i18n/csrutf8.cpp
index b42bd8b..3f16224 100644
--- a/icu4c/source/i18n/csrutf8.cpp
+++ b/icu4c/source/i18n/csrutf8.cpp
@@ -99,7 +99,7 @@
         //              accepts ASCII with confidence = 10.
         confidence = 15;
     } else if (numValid > numInvalid*10) {
-        // Probably corruput utf-8 data.  Valid sequences aren't likely by chance.
+        // Probably corrupt utf-8 data.  Valid sequences aren't likely by chance.
         confidence = 25;
     }
 
diff --git a/icu4c/source/i18n/decContext.cpp b/icu4c/source/i18n/decContext.cpp
index 6ec6d32..421d65b 100644
--- a/icu4c/source/i18n/decContext.cpp
+++ b/icu4c/source/i18n/decContext.cpp
@@ -150,7 +150,7 @@
 /*  newstatus is the source for the bits to be restored               */
 /*  mask indicates the bits to be restored (the status bit that       */
 /*    corresponds to each 1 bit in the mask is set to the value of    */
-/*    the correspnding bit in newstatus)                              */
+/*    the corresponding bit in newstatus)                              */
 /*  returns context                                                   */
 /*                                                                    */
 /* No error is possible.                                              */
diff --git a/icu4c/source/i18n/gregocal.cpp b/icu4c/source/i18n/gregocal.cpp
index 7ca5826..31d3630 100644
--- a/icu4c/source/i18n/gregocal.cpp
+++ b/icu4c/source/i18n/gregocal.cpp
@@ -398,7 +398,7 @@
         // with 8 AD.  Before 8 AD the spacing is irregular; every 3 years
         // from 45 BC to 9 BC, and then none until 8 AD.  However, we don't
         // implement this historical detail; instead, we implement the
-        // computatinally cleaner proleptic calendar, which assumes
+        // computationally cleaner proleptic calendar, which assumes
         // consistent 4-year cycles throughout time.
         UBool isLeap = ((eyear&0x3) == 0); // equiv. to (eyear%4 == 0)
 
diff --git a/icu4c/source/i18n/msgfmt.cpp b/icu4c/source/i18n/msgfmt.cpp
index 3ca368e..d263177 100644
--- a/icu4c/source/i18n/msgfmt.cpp
+++ b/icu4c/source/i18n/msgfmt.cpp
@@ -1107,7 +1107,7 @@
         } else if (argType == UMSGPAT_ARG_TYPE_NONE || (cachedFormatters && uhash_iget(cachedFormatters, i - 2))) {
             // We arrive here if getCachedFormatter returned NULL, but there was actually an element in the hash table.
             // This can only happen if the hash table contained a DummyFormat, so the if statement above is a check
-            // for the hash table containind DummyFormat.
+            // for the hash table containing DummyFormat.
             if (arg->isNumeric()) {
                 const NumberFormat* nf = getDefaultNumberFormat(success);
                 appendTo.formatAndAppend(nf, *arg, success);
@@ -1440,7 +1440,7 @@
             argType==UMSGPAT_ARG_TYPE_NONE || (cachedFormatters && uhash_iget(cachedFormatters, i -2))) {
             // We arrive here if getCachedFormatter returned NULL, but there was actually an element in the hash table.
             // This can only happen if the hash table contained a DummyFormat, so the if statement above is a check
-            // for the hash table containind DummyFormat.
+            // for the hash table containing DummyFormat.
 
             // Match as a string.
             // if at end, use longest possible match
diff --git a/icu4c/source/i18n/nfrs.cpp b/icu4c/source/i18n/nfrs.cpp
index 1510d88..86b079c 100644
--- a/icu4c/source/i18n/nfrs.cpp
+++ b/icu4c/source/i18n/nfrs.cpp
@@ -647,7 +647,7 @@
 /**
  * Parses a string.  Matches the string to be parsed against each
  * of its rules (with a base value less than upperBound) and returns
- * the value produced by the rule that matched the most charcters
+ * the value produced by the rule that matched the most characters
  * in the source string.
  * @param text The string to parse
  * @param parsePosition The initial position is ignored and assumed
diff --git a/icu4c/source/i18n/numrange_impl.cpp b/icu4c/source/i18n/numrange_impl.cpp
index 3aae5c2..c6e8fce 100644
--- a/icu4c/source/i18n/numrange_impl.cpp
+++ b/icu4c/source/i18n/numrange_impl.cpp
@@ -305,7 +305,7 @@
             // INNER MODIFIER
             collapseInner = micros1.modInner->semanticallyEquivalent(*micros2.modInner);
 
-            // All done checking for collapsability.
+            // All done checking for collapsibility.
             break;
         }
 
diff --git a/icu4c/source/i18n/rbt.cpp b/icu4c/source/i18n/rbt.cpp
index 4cef242..d166f7a 100644
--- a/icu4c/source/i18n/rbt.cpp
+++ b/icu4c/source/i18n/rbt.cpp
@@ -101,7 +101,7 @@
 }*/
 
 /**
- * Covenience constructor with no filter.
+ * Convenience constructor with no filter.
  */
 /*RuleBasedTransliterator::RuleBasedTransliterator(
                             const UnicodeString& id,
@@ -114,7 +114,7 @@
 }*/
 
 /**
- * Covenience constructor with no filter and FORWARD direction.
+ * Convenience constructor with no filter and FORWARD direction.
  */
 /*RuleBasedTransliterator::RuleBasedTransliterator(
                             const UnicodeString& id,
@@ -126,7 +126,7 @@
 }*/
 
 /**
- * Covenience constructor with FORWARD direction.
+ * Convenience constructor with FORWARD direction.
  */
 /*RuleBasedTransliterator::RuleBasedTransliterator(
                             const UnicodeString& id,
diff --git a/icu4c/source/i18n/rbt.h b/icu4c/source/i18n/rbt.h
index 61d3b6b..671b41e 100644
--- a/icu4c/source/i18n/rbt.h
+++ b/icu4c/source/i18n/rbt.h
@@ -80,7 +80,7 @@
                             UErrorCode& status);*/
 
     /**
-     * Covenience constructor with no filter.
+     * Convenience constructor with no filter.
      * @internal Use transliterator factory methods instead since this class will be removed in that release.
      */
     /*RuleBasedTransliterator(const UnicodeString& id,
@@ -89,7 +89,7 @@
                             UErrorCode& status);*/
 
     /**
-     * Covenience constructor with no filter and FORWARD direction.
+     * Convenience constructor with no filter and FORWARD direction.
      * @internal Use transliterator factory methods instead since this class will be removed in that release.
      */
     /*RuleBasedTransliterator(const UnicodeString& id,
@@ -97,7 +97,7 @@
                             UErrorCode& status);*/
 
     /**
-     * Covenience constructor with FORWARD direction.
+     * Convenience constructor with FORWARD direction.
      * @internal Use transliterator factory methods instead since this class will be removed in that release.
      */
     /*RuleBasedTransliterator(const UnicodeString& id,
@@ -108,7 +108,7 @@
 
      friend class TransliteratorRegistry; // to access TransliterationRuleData convenience ctor
     /**
-     * Covenience constructor.
+     * Convenience constructor.
      * @param id            the id for the transliterator.
      * @param theData       the rule data for the transliterator.
      * @param adoptedFilter the filter for the transliterator
diff --git a/icu4c/source/i18n/rbt_pars.cpp b/icu4c/source/i18n/rbt_pars.cpp
index 7bfe1df..9faefb3 100644
--- a/icu4c/source/i18n/rbt_pars.cpp
+++ b/icu4c/source/i18n/rbt_pars.cpp
@@ -945,7 +945,7 @@
         if (c == RULE_COMMENT_CHAR) {
             pos = rule.indexOf((UChar)0x000A /*\n*/, pos) + 1;
             if (pos == 0) {
-                break; // No "\n" found; rest of rule is a commnet
+                break; // No "\n" found; rest of rule is a comment
             }
             continue; // Either fall out or restart with next line
         }
diff --git a/icu4c/source/i18n/regexcmp.cpp b/icu4c/source/i18n/regexcmp.cpp
index dd777b7..ad069cb 100644
--- a/icu4c/source/i18n/regexcmp.cpp
+++ b/icu4c/source/i18n/regexcmp.cpp
@@ -557,7 +557,7 @@
         //
         //   Note:   Addition of transparent input regions, with the need to
         //           restore the original regions when failing out of a lookahead
-        //           block, complicated this sequence.  Some conbined opcodes
+        //           block, complicated this sequence.  Some combined opcodes
         //           might make sense - or might not, lookahead aren't that common.
         //
         //      Caution:  min match length optimization knows about this
diff --git a/icu4c/source/i18n/reldtfmt.cpp b/icu4c/source/i18n/reldtfmt.cpp
index c8ffd04..ea9ca80 100644
--- a/icu4c/source/i18n/reldtfmt.cpp
+++ b/icu4c/source/i18n/reldtfmt.cpp
@@ -334,7 +334,7 @@
 RelativeDateFormat::parse( const UnicodeString& text,
                          ParsePosition& pos) const {
     // redefined here because the other parse() function hides this function's
-    // cunterpart on DateFormat
+    // counterpart on DateFormat
     return DateFormat::parse(text, pos);
 }
 
diff --git a/icu4c/source/i18n/scriptset.h b/icu4c/source/i18n/scriptset.h
index a41ab73..b770995 100644
--- a/icu4c/source/i18n/scriptset.h
+++ b/icu4c/source/i18n/scriptset.h
@@ -51,7 +51,7 @@
     ScriptSet &reset(UScriptCode script, UErrorCode &status);
     ScriptSet &intersect(const ScriptSet &other);
     ScriptSet &intersect(UScriptCode script, UErrorCode &status);
-    UBool      intersects(const ScriptSet &other) const;  // Sets contain at least one script in commmon.
+    UBool      intersects(const ScriptSet &other) const;  // Sets contain at least one script in common.
     UBool      contains(const ScriptSet &other) const;    // All set bits in other are also set in this.
 
     ScriptSet &setAll();
diff --git a/icu4c/source/i18n/sortkey.cpp b/icu4c/source/i18n/sortkey.cpp
index 1228948..2ec35ef 100644
--- a/icu4c/source/i18n/sortkey.cpp
+++ b/icu4c/source/i18n/sortkey.cpp
@@ -20,7 +20,7 @@
 //
 //  6/20/97      helena        Java class name change.
 //  6/23/97      helena        Added comments to make code more readable.
-//  6/26/98      erm           Canged to use byte arrays instead of UnicodeString
+//  6/26/98      erm           Changed to use byte arrays instead of UnicodeString
 //  7/31/98      erm           hashCode: minimum inc should be 2 not 1,
 //                             Cleaned up operator=
 // 07/12/99      helena        HPUX 11 CC port.
diff --git a/icu4c/source/i18n/transreg.h b/icu4c/source/i18n/transreg.h
index 04ed3fb..0a06988 100644
--- a/icu4c/source/i18n/transreg.h
+++ b/icu4c/source/i18n/transreg.h
@@ -144,7 +144,7 @@
  public:
 
     /**
-     * Contructor
+     * Constructor
      * @param status Output param set to success/failure code.
      */
     TransliteratorRegistry(UErrorCode& status);
diff --git a/icu4c/source/i18n/tzfmt.cpp b/icu4c/source/i18n/tzfmt.cpp
index f87f0f6..822fc9e 100644
--- a/icu4c/source/i18n/tzfmt.cpp
+++ b/icu4c/source/i18n/tzfmt.cpp
@@ -1873,7 +1873,7 @@
                 // When TimeZoneFormat parse() is called from SimpleDateFormat,
                 // leading space characters might be truncated. If the first pattern text
                 // starts with such character (e.g. Bidi control), then we need to
-                // skip the leading space charcters.
+                // skip the leading space characters.
                 if (idx < text.length() && !PatternProps::isWhiteSpace(text.char32At(idx))) {
                     while (len > 0) {
                         UChar32 ch;
diff --git a/icu4c/source/i18n/unicode/datefmt.h b/icu4c/source/i18n/unicode/datefmt.h
index f106e82..c50d486 100644
--- a/icu4c/source/i18n/unicode/datefmt.h
+++ b/icu4c/source/i18n/unicode/datefmt.h
@@ -139,7 +139,7 @@
  * more control over the format or parsing, (or want to give your users more
  * control), you can try casting the DateFormat you get from the factory methods
  * to a SimpleDateFormat. This will work for the majority of countries; just
- * remember to chck getDynamicClassID() before carrying out the cast.
+ * remember to check getDynamicClassID() before carrying out the cast.
  * <P>
  * You can also use forms of the parse and format methods with ParsePosition and
  * FieldPosition to allow you to
diff --git a/icu4c/source/i18n/unicode/dcfmtsym.h b/icu4c/source/i18n/unicode/dcfmtsym.h
index b2c39a0..d0f844a 100644
--- a/icu4c/source/i18n/unicode/dcfmtsym.h
+++ b/icu4c/source/i18n/unicode/dcfmtsym.h
@@ -446,7 +446,7 @@
     inline const UnicodeString& getConstDigitSymbol(int32_t digit) const;
 
     /**
-     * Returns that pattern stored in currecy info. Internal API for use by NumberFormat API.
+     * Returns that pattern stored in currency info. Internal API for use by NumberFormat API.
      * @internal
      */
     inline const char16_t* getCurrencyPattern(void) const;
diff --git a/icu4c/source/i18n/unicode/rbnf.h b/icu4c/source/i18n/unicode/rbnf.h
index c6484da..85d8f5b 100644
--- a/icu4c/source/i18n/unicode/rbnf.h
+++ b/icu4c/source/i18n/unicode/rbnf.h
@@ -653,7 +653,7 @@
 
   /**
    * Creates a RuleBasedNumberFormat from a predefined ruleset.  The selector
-   * code choosed among three possible predefined formats: spellout, ordinal,
+   * code chose among three possible predefined formats: spellout, ordinal,
    * and duration.
    * @param tag A selector code specifying which kind of formatter to create for that
    * locale.  There are four legal values: URBNF_SPELLOUT, which creates a formatter that
diff --git a/icu4c/source/i18n/unicode/rbtz.h b/icu4c/source/i18n/unicode/rbtz.h
index d481e9b..06d566a 100644
--- a/icu4c/source/i18n/unicode/rbtz.h
+++ b/icu4c/source/i18n/unicode/rbtz.h
@@ -107,7 +107,7 @@
 
     /**
      * Makes the <code>TimeZoneRule</code> ready to handle actual timezone
-     * calcuation APIs.  This method collects time zone rules specified
+     * calculation APIs.  This method collects time zone rules specified
      * by the caller via the constructor and addTransitionRule() and
      * builds internal structure for making the object ready to support
      * time zone APIs such as getOffset(), getNextTransition() and others.
diff --git a/icu4c/source/i18n/unicode/translit.h b/icu4c/source/i18n/unicode/translit.h
index 2aa02c3..3fbfcb4 100644
--- a/icu4c/source/i18n/unicode/translit.h
+++ b/icu4c/source/i18n/unicode/translit.h
@@ -375,7 +375,7 @@
  *
  * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
  * This is done by including a virtual anchor character '<code>$</code>' at the end of the
- * set pattern. Although this is usually the match chafacter for the end anchor, the set will
+ * set pattern. Although this is usually the match character for the end anchor, the set will
  * match either the beginning or the end of the text, depending on its placement. For
  * example:
  *
diff --git a/icu4c/source/i18n/unicode/tznames.h b/icu4c/source/i18n/unicode/tznames.h
index 2e20eff..19858cd 100644
--- a/icu4c/source/i18n/unicode/tznames.h
+++ b/icu4c/source/i18n/unicode/tznames.h
@@ -193,7 +193,7 @@
 
     /**
      * Returns an enumeration of all available meta zone IDs used by the given time zone.
-     * @param tzID The canoical tiem zone ID.
+     * @param tzID The canonical time zone ID.
      * @param status Receives the status.
      * @return an enumeration object, owned by the caller.
      * @stable ICU 50
diff --git a/icu4c/source/i18n/unicode/tzrule.h b/icu4c/source/i18n/unicode/tzrule.h
index 795806d..eca3e0f 100644
--- a/icu4c/source/i18n/unicode/tzrule.h
+++ b/icu4c/source/i18n/unicode/tzrule.h
@@ -372,7 +372,7 @@
 
 /**
  * <code>AnnualTimeZoneRule</code> is a class used for representing a time zone
- * rule which takes effect annually.  The calenday system used for the rule is
+ * rule which takes effect annually.  The calendar system used for the rule is
  * is based on Gregorian calendar
  * 
  * @stable ICU 3.8
diff --git a/icu4c/source/i18n/unicode/ucol.h b/icu4c/source/i18n/unicode/ucol.h
index a01d0ae..dfc3a16 100644
--- a/icu4c/source/i18n/unicode/ucol.h
+++ b/icu4c/source/i18n/unicode/ucol.h
@@ -83,7 +83,7 @@
 } UCollationResult ;
 
 
-/** Enum containing attribute values for controling collation behavior.
+/** Enum containing attribute values for controlling collation behavior.
  * Here are all the allowable values. Not every attribute can take every value. The only
  * universal value is UCOL_DEFAULT, which resets the attribute value to the predefined  
  * value for that locale 
diff --git a/icu4c/source/i18n/usearch.cpp b/icu4c/source/i18n/usearch.cpp
index 8866de7..d0628a1 100644
--- a/icu4c/source/i18n/usearch.cpp
+++ b/icu4c/source/i18n/usearch.cpp
@@ -4061,7 +4061,7 @@
         // * do NOT require that match limit be on a breakIter boundary
 
         //  Advance the match end position to the first acceptable match boundary.
-        //    This advances the index over any combining charcters.
+        //    This advances the index over any combining characters.
         mLimit = maxLimit;
         if (minLimit < maxLimit) {
             // When the last CE's low index is same with its high index, the CE is likely
diff --git a/icu4c/source/i18n/uspoof_conf.cpp b/icu4c/source/i18n/uspoof_conf.cpp
index 1a7cdad..862f5da 100644
--- a/icu4c/source/i18n/uspoof_conf.cpp
+++ b/icu4c/source/i18n/uspoof_conf.cpp
@@ -15,7 +15,7 @@
 *   created on: 2009Jan05  (refactoring earlier files)
 *   created by: Andy Heninger
 *
-*   Internal classes for compililing confusable data into its binary (runtime) form.
+*   Internal classes for compiling confusable data into its binary (runtime) form.
 */
 
 #include "unicode/utypes.h"
diff --git a/icu4c/source/i18n/uspoof_impl.h b/icu4c/source/i18n/uspoof_impl.h
index 43b23a8..3c72d91 100644
--- a/icu4c/source/i18n/uspoof_impl.h
+++ b/icu4c/source/i18n/uspoof_impl.h
@@ -157,7 +157,7 @@
 //
 //    String Table:
 //       The strings table contains all of the value strings (those of length two or greater)
-//       concatentated together into one long UChar (UTF-16) array.
+//       concatenated together into one long UChar (UTF-16) array.
 //
 //       There is no nul character or other mark between adjacent strings.
 //
diff --git a/icu4c/source/i18n/zonemeta.h b/icu4c/source/i18n/zonemeta.h
index 58724ea..a5a446d 100644
--- a/icu4c/source/i18n/zonemeta.h
+++ b/icu4c/source/i18n/zonemeta.h
@@ -50,7 +50,7 @@
     static const UChar* U_EXPORT2 getCanonicalCLDRID(const UnicodeString &tzid, UErrorCode& status);
 
     /*
-     * Conveninent method returning CLDR canonical ID for the given time zone
+     * Convenient method returning CLDR canonical ID for the given time zone
      */
     static const UChar* U_EXPORT2 getCanonicalCLDRID(const TimeZone& tz);
 
diff --git a/icu4c/source/layoutex/layout/RunArrays.h b/icu4c/source/layoutex/layout/RunArrays.h
index aa8b4ac..bcd197b 100644
--- a/icu4c/source/layoutex/layout/RunArrays.h
+++ b/icu4c/source/layoutex/layout/RunArrays.h
@@ -140,7 +140,7 @@
      *
      * @param limit is the limit index to add to the array.
      *
-     * @return the run index where the limit index was stored, or -1 if the limit index cannt be stored.
+     * @return the run index where the limit index was stored, or -1 if the limit index cannot be stored.
      *
      * @see init
      * @see grow
diff --git a/icu4c/source/test/cintltst/capitst.c b/icu4c/source/test/cintltst/capitst.c
index f328b8a..07b072e 100644
--- a/icu4c/source/test/cintltst/capitst.c
+++ b/icu4c/source/test/cintltst/capitst.c
@@ -1174,7 +1174,7 @@
     free(sortk2);
     free(sortk3);
 
-    log_verbose("Use secondary comparision level testing ...\n");
+    log_verbose("Use secondary comparison level testing ...\n");
     ucol_setStrength(col, UCOL_SECONDARY);
     sortklen=ucol_getSortKey(col, test1, u_strlen(test1),  NULL, 0);
     sortk1=(uint8_t*)malloc(sizeof(uint8_t) * (sortklen+1));
diff --git a/icu4c/source/test/cintltst/cnmdptst.c b/icu4c/source/test/cintltst/cnmdptst.c
index 99a9ce2..f736cb9 100644
--- a/icu4c/source/test/cintltst/cnmdptst.c
+++ b/icu4c/source/test/cintltst/cnmdptst.c
@@ -131,7 +131,7 @@
     u_uastrcpy(pat, "a'fo''o'b#");
     fmt =unum_open(UNUM_IGNORE,pat, u_strlen(pat), "en_US",NULL, &status);
     if(U_FAILURE(status)){
-        log_err_status(status, "Error in number format costruction using pattern \"a'fo''o'b#\" -> %s\n", u_errorName(status));
+        log_err_status(status, "Error in number format construction using pattern \"a'fo''o'b#\" -> %s\n", u_errorName(status));
     }
     lneed=0;
     lneed=unum_format(fmt, 123, NULL, lneed, NULL, &status);
@@ -160,7 +160,7 @@
 
     fmt =unum_open(UNUM_IGNORE,pat, u_strlen(pat), "en_US",NULL, &status);
     if(U_FAILURE(status)){
-        log_err("Error in number format costruction using pattern \"a''b#\"\n");
+        log_err("Error in number format construction using pattern \"a''b#\"\n");
     }
     lneed=0;
     lneed=unum_format(fmt, 123, NULL, lneed, NULL, &status);
diff --git a/icu4c/source/test/cintltst/nucnvtst.c b/icu4c/source/test/cintltst/nucnvtst.c
index e85c4d0..73e0fde 100644
--- a/icu4c/source/test/cintltst/nucnvtst.c
+++ b/icu4c/source/test/cintltst/nucnvtst.c
@@ -2557,7 +2557,7 @@
     {
     static const uint8_t input1[]={ 0xA1 };
     const char* illegalsource=(const char*)input1;
-    TestNextUCharError(cnv, illegalsource, illegalsource+sizeof(illegalsource), U_INVALID_CHAR_FOUND, "source has a illegal characte");
+    TestNextUCharError(cnv, illegalsource, illegalsource+sizeof(illegalsource), U_INVALID_CHAR_FOUND, "source has a illegal character");
     }
    */
     ucnv_close(cnv);
diff --git a/icu4c/source/test/intltest/apicoll.cpp b/icu4c/source/test/intltest/apicoll.cpp
index 88eefa9..ef4f167 100644
--- a/icu4c/source/test/intltest/apicoll.cpp
+++ b/icu4c/source/test/intltest/apicoll.cpp
@@ -1173,7 +1173,7 @@
     doAssert(memcmp(tempkey, sortkey3, keylength) == 0,
         "Test3 string should have the same collation key and sort key");
 
-    logln("Use secondary comparision level testing ...\n");
+    logln("Use secondary comparison level testing ...\n");
     col->setStrength(Collator::SECONDARY);
 
     col->getCollationKey(test1, u_strlen(test1), key1, status);
diff --git a/icu4c/source/test/intltest/dcfmapts.cpp b/icu4c/source/test/intltest/dcfmapts.cpp
index c8bf97a..a625749 100644
--- a/icu4c/source/test/intltest/dcfmapts.cpp
+++ b/icu4c/source/test/intltest/dcfmapts.cpp
@@ -1167,7 +1167,7 @@
         assertEquals(WHERE, U_MEMORY_ALLOCATION_ERROR, status);
 
         // Two invalid objects should not be equal.
-        // (Also verify that nullptr isn't t dereferenced in the comparision operator.)
+        // (Also verify that nullptr isn't t dereferenced in the comparison operator.)
         assertTrue(WHERE, dfBogus != dfBogus2);
 
         // Verify the comparison operator works for two valid objects.
diff --git a/icu4c/source/test/intltest/rbbiapts.h b/icu4c/source/test/intltest/rbbiapts.h
index 13b1e29..8286e6a 100644
--- a/icu4c/source/test/intltest/rbbiapts.h
+++ b/icu4c/source/test/intltest/rbbiapts.h
@@ -96,7 +96,7 @@
     /* Internal subroutine used by TestIsBoundary() */ 
     void doBoundaryTest(BreakIterator& bi, UnicodeString& text, int32_t *boundaries);
 
-    /*Internal subroutine used for comparision of expected and acquired results */
+    /*Internal subroutine used for comparison of expected and acquired results */
     void doTest(UnicodeString& testString, int32_t start, int32_t gotoffset, int32_t expectedOffset, const char* expected);
 
 
diff --git a/icu4c/source/test/intltest/tfsmalls.cpp b/icu4c/source/test/intltest/tfsmalls.cpp
index 427eb10..d7a00b2 100644
--- a/icu4c/source/test/intltest/tfsmalls.cpp
+++ b/icu4c/source/test/intltest/tfsmalls.cpp
@@ -60,7 +60,7 @@
     pp3 = 5;
     ParsePosition pp4( pp3 );
     if ((pp2 != pp3) && (pp3 == pp4)) {
-        it_logln("PP copy contructor, operator== and operator != tested.");
+        it_logln("PP copy constructor, operator== and operator != tested.");
     }else{
         it_errln("*** PP operator== or operator != result");
     }
diff --git a/icu4c/source/tools/toolutil/ucbuf.h b/icu4c/source/tools/toolutil/ucbuf.h
index 116da37..b77d998 100644
--- a/icu4c/source/tools/toolutil/ucbuf.h
+++ b/icu4c/source/tools/toolutil/ucbuf.h
@@ -49,7 +49,7 @@
  * Opens the UCHARBUF with the given file stream and code page for conversion
  * @param fileName  Name of the file to open.
  * @param codepage  The encoding of the file stream to convert to Unicode.
- *                  If *codepoge is NULL on input the API will try to autodetect
+ *                  If *codepage is NULL on input the API will try to autodetect
  *                  popular Unicode encodings
  * @param showWarning Flag to print out warnings to STDOUT
  * @param buffered  If TRUE performs a buffered read of the input file. If FALSE reads
diff --git a/icu4c/source/tools/tzcode/tz2icu.h b/icu4c/source/tools/tzcode/tz2icu.h
index b88442f..c077c21 100644
--- a/icu4c/source/tools/tzcode/tz2icu.h
+++ b/icu4c/source/tools/tzcode/tz2icu.h
@@ -40,7 +40,7 @@
 #define ICU_TZ_RESOURCE_OLD "zoneinfo"
 #define ICU_TZ_RESOURCE "zoneinfo64"
 
-/* File containinng custom zone-region mapping. */
+/* File containing custom zone-region mapping. */
 #define ICU_REGIONS "icuregions"
 
 #endif
diff --git a/icu4j/demos/src/com/ibm/icu/dev/demo/calendar/CalendarFrame.java b/icu4j/demos/src/com/ibm/icu/dev/demo/calendar/CalendarFrame.java
index 0780e66..d64b6c3 100644
--- a/icu4j/demos/src/com/ibm/icu/dev/demo/calendar/CalendarFrame.java
+++ b/icu4j/demos/src/com/ibm/icu/dev/demo/calendar/CalendarFrame.java
@@ -266,7 +266,7 @@
                         monthFormat[i] = f;
                     }
                 } catch (ClassCastException e) {
-                    //hey {lw} - there's something wrong in this routine that cuases exceptions.
+                    //hey {lw} - there's something wrong in this routine that causes exceptions.
                     System.out.println(e);
                 }
 
diff --git a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/math/BigDecimal.java b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/math/BigDecimal.java
index d132c66..5edef9b 100644
--- a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/math/BigDecimal.java
+++ b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/math/BigDecimal.java
@@ -88,7 +88,7 @@
 /*            constructor, no blanks in string constructor, add       */
 /*            offset and length version of char[] constructor;        */
 /*            add valueOf(double); drop booleanValue, charValue;      */
-/*            add ...Exact versions of remaining convertors           */
+/*            add ...Exact versions of remaining converters           */
 /* 1999.03.13 add toBigIntegerExact                                   */
 /* 1999.03.13 1.00 release to IBM Centre for Java Technology          */
 /* 1999.05.27 1.01 correct 0-0.2 bug under scaled arithmetic          */
diff --git a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/CollationKey.java b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/CollationKey.java
index 5afb608..78fbe79 100644
--- a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/CollationKey.java
+++ b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/CollationKey.java
@@ -23,7 +23,7 @@
  * <p>Both the method
  * <code>CollationKey.compareTo(CollationKey)</code> and the method
  * <code>Collator.compare(String, String)</code> compare two strings
- * and returns their relative order.  The performance characterictics
+ * and returns their relative order.  The performance characteristics
  * of these two approaches can differ.</p>
  *
  * <p>During the construction of a <code>CollationKey</code>, the
diff --git a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/Collator.java b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/Collator.java
index bd49b02..7596db3 100644
--- a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/Collator.java
+++ b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/Collator.java
@@ -58,7 +58,7 @@
 *     When all other strengths are equal, the IDENTICAL strength is used as a
 *     tiebreaker. The Unicode code point values of the NFD form of each string
 *     are compared, just in case there is no difference.
-*     For example, Hebrew cantellation marks are only distinguished at this
+*     For example, Hebrew cantillation marks are only distinguished at this
 *     strength. This strength should be used sparingly, as only code point
 *     value differences between two strings is an extremely rare occurrence.
 *     Using this strength substantially decreases the performance for both
diff --git a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/DateFormatSymbols.java b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/DateFormatSymbols.java
index d6b94d1..b14f26b 100644
--- a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/DateFormatSymbols.java
+++ b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/DateFormatSymbols.java
@@ -707,7 +707,7 @@
 
 //    /**
 //     * Variant of DateFormatSymbols(Calendar, Locale) that takes the Calendar class
-//     * instead of a Calandar instance.
+//     * instead of a Calendar instance.
 //     * @see #DateFormatSymbols(Calendar, Locale)
 //     * @stable ICU 2.2
 //     */
@@ -717,7 +717,7 @@
 
 //    /**
 //     * Variant of DateFormatSymbols(Calendar, ULocale) that takes the Calendar class
-//     * instead of a Calandar instance.
+//     * instead of a Calendar instance.
 //     * @see #DateFormatSymbols(Calendar, Locale)
 //     * @stable ICU 3.2
 //     */
diff --git a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/MessageFormat.java b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/MessageFormat.java
index 2623e48..a2db295 100644
--- a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/MessageFormat.java
+++ b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/text/MessageFormat.java
@@ -917,7 +917,7 @@
 //     * <p>
 //     * The text substituted for the individual format elements is derived from
 //     * the current subformat of the format element and the
-//     * <code>arguments</code> value corresopnding to the format element's
+//     * <code>arguments</code> value corresponding to the format element's
 //     * argument name.
 //     * <p>
 //     * This API may be called on formats that do not use named arguments.
diff --git a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/Calendar.java b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/Calendar.java
index 8fa9ddf..d14e27e 100644
--- a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/Calendar.java
+++ b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/Calendar.java
@@ -518,7 +518,7 @@
  *     between days at sunset or at other times, all ICU4J calendars
  *     transition between days at <em>local zone midnight</em>.  This
  *     allows ICU4J to centralize the time computations in
- *     <code>Calendar</code> and to maintain basic correpsondences
+ *     <code>Calendar</code> and to maintain basic correspondences
  *     between calendar systems. Affected fields: {@link #AM_PM},
  *     {@link #HOUR}, {@link #HOUR_OF_DAY}, {@link #MINUTE},
  *     {@link #SECOND}, {@link #MILLISECOND},
diff --git a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/ULocale.java b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/ULocale.java
index f6d26a2..4e0fbe0 100644
--- a/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/ULocale.java
+++ b/icu4j/eclipse-build/plugins.template/com.ibm.icu.base/src/com/ibm/icu/util/ULocale.java
@@ -584,7 +584,7 @@
      * user.language property, a security exception will be thrown,
      * and the default ULocale will remain unchanged.
      * <p>
-     * By setting the default ULocale with this method, all of the default categoy locales
+     * By setting the default ULocale with this method, all of the default category locales
      * are also set to the specified default ULocale.
      * @param newLocale the new default locale
      * @throws SecurityException if a security manager exists and its
@@ -3004,7 +3004,7 @@
          * effect.  The attribute must not be null and must be well-formed
          * or an exception is thrown.
          *
-         * <p>Attribute comparision for removal is case-insensitive.
+         * <p>Attribute comparison for removal is case-insensitive.
          *
          * @param attribute the attribute
          * @return This builder.
diff --git a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetBOCU1.java b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetBOCU1.java
index fd113db..cbe8956 100644
--- a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetBOCU1.java
+++ b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetBOCU1.java
@@ -403,7 +403,7 @@
                 prev = BOCU1_ASCII_PREV;
             }
 
-            /*sourceIndex ==-1 if the current characte began in the previous buffer*/
+            /*sourceIndex ==-1 if the current character began in the previous buffer*/
             sourceIndex = c == 0 ? 0: -1;
             nextSourceIndex = 0;
 
diff --git a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetEncoderICU.java b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetEncoderICU.java
index 3ebff31..9b49dd6 100644
--- a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetEncoderICU.java
+++ b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetEncoderICU.java
@@ -87,7 +87,7 @@
     };
 
     /*
-     * Construcs a new encoder for the given charset
+     * Constructs a new encoder for the given charset
      *
      * @param cs
      *            for which the decoder is created
diff --git a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISCII.java b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISCII.java
index 7b3dd48..3401c29 100644
--- a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISCII.java
+++ b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISCII.java
@@ -1300,7 +1300,7 @@
                             }
                             if (converterData.currentDeltaFromUnicode == PNJ_DELTA) {
                                 if (sourceChar == PNJ_TIPPI) {
-                                    /* Make sure Tippi is converterd to Bindi. */
+                                    /* Make sure Tippi is converted to Bindi. */
                                     sourceChar = PNJ_BINDI;
                                 } else if (sourceChar == PNJ_ADHAK) {
                                     /* This is for consonant cluster handling. */
diff --git a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISO2022.java b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISO2022.java
index 154b1ab..e0f9ebf 100644
--- a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISO2022.java
+++ b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetISO2022.java
@@ -147,7 +147,7 @@
         maxBytesPerChar = 8;
         minBytesPerChar = 1;
         maxCharsPerByte = 1;
-        // open the required coverters and cache them.
+        // open the required converters and cache them.
         myConverterData.myConverterArray[GB2312_1] = ((CharsetMBCS)CharsetICU.forNameICU("ibm-5478")).sharedData;
         if (version == 1) {
             myConverterData.myConverterArray[ISO_IR_165] = ((CharsetMBCS)CharsetICU.forNameICU("iso-ir-165")).sharedData;
@@ -2533,7 +2533,7 @@
              * are handled by the framework, but for ISO-2022-CN conversion
              * we need to be in ASCII mode at the very end
              *
-             * condtions:
+             * conditions:
              *   succesful
              *   not in ASCII mode
              *   end of input and no truncated input
@@ -2976,7 +2976,7 @@
                 } else if(variant==ISO_2022_JP && i == JISX208){
                     /*
                      * Only add code points that map to Shift-JIS codes
-                     * corrosponding to JIS X 208
+                     * corresponding to JIS X 208
                      */
                     filter=CharsetMBCS.UCNV_SET_FILTER_SJIS;
                 } else if(i==KSC5601){
diff --git a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetMBCS.java b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetMBCS.java
index 9137c7a..8da0352 100644
--- a/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetMBCS.java
+++ b/icu4j/main/classes/charset/src/com/ibm/icu/charset/CharsetMBCS.java
@@ -265,7 +265,7 @@
             try {
                 baseNameString = reader.readBaseTableName();
                 if (offset != 0) {
-                    // agljport:commment subtract 32 for sizeof(_MBCSHeader) and length of baseNameString and 1 null
+                    // agljport:comment subtract 32 for sizeof(_MBCSHeader) and length of baseNameString and 1 null
                     // terminator byte all already read;
                     mbcsTable.extIndexes = reader.readExtIndexes(offset - reader.bytesReadAfterStaticData());
                 }
@@ -441,7 +441,7 @@
 
             if (offset != 0) {
                 try {
-                    // agljport:commment subtract 32 for sizeof(_MBCSHeader) and length of baseNameString and 1 null
+                    // agljport:comment subtract 32 for sizeof(_MBCSHeader) and length of baseNameString and 1 null
                     // terminator byte all already read;
                     // int namelen = baseNameString != null? baseNameString.length() + 1: 0;
                     mbcsTable.extIndexes = reader.readExtIndexes(offset - reader.bytesReadAfterStaticData());
@@ -4903,7 +4903,7 @@
                                 }while((++c&0xf)!=0);
                                 break;
                             case UCNV_SET_FILTER_SJIS:
-                                /* only add code points that map tp Shift-JIS codes corrosponding to JIS X 0280. */
+                                /* only add code points that map tp Shift-JIS codes corresponding to JIS X 0280. */
                                 do{
                                     if(((st3&1) != 0 || useFallBack) && (value=chars[stage3 / 2])>=0x8140 && value<=0xeffc){
                                         setFillIn.add(c);
diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java b/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java
index 47d4994..b6a3288 100644
--- a/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java
+++ b/icu4j/main/classes/collate/src/com/ibm/icu/text/Collator.java
@@ -76,7 +76,7 @@
 *     When all other strengths are equal, the IDENTICAL strength is used as a
 *     tiebreaker. The Unicode code point values of the NFD form of each string
 *     are compared, just in case there is no difference.
-*     For example, Hebrew cantellation marks are only distinguished at this
+*     For example, Hebrew cantillation marks are only distinguished at this
 *     strength. This strength should be used sparingly, as only code point
 *     value differences between two strings is an extremely rare occurrence.
 *     Using this strength substantially decreases the performance for both
diff --git a/icu4j/main/classes/collate/src/com/ibm/icu/text/StringSearch.java b/icu4j/main/classes/collate/src/com/ibm/icu/text/StringSearch.java
index dad2252..30e7548 100644
--- a/icu4j/main/classes/collate/src/com/ibm/icu/text/StringSearch.java
+++ b/icu4j/main/classes/collate/src/com/ibm/icu/text/StringSearch.java
@@ -1448,7 +1448,7 @@
                 // * do NOT require that match limit be on a breakIter boundary
 
                 // Advance the match end position to the first acceptable match boundary.
-                // This advances the index over any combining charcters.
+                // This advances the index over any combining characters.
                 if (minLimit < maxLimit) {
                     int nba = nextBoundaryAfter(minLimit);
                     // Note that we can have nba < maxLimit && nba >= minLImit, in which
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/impl/UCaseProps.java b/icu4j/main/classes/core/src/com/ibm/icu/impl/UCaseProps.java
index ae8bfb8..bb86bcf 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/impl/UCaseProps.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/impl/UCaseProps.java
@@ -565,7 +565,7 @@
      *   - In [CoreProps], C has one of the properties Uppercase, or Lowercase
      *   - Given D = NFD(C), then it is not the case that:
      *     D = UCD_lower(D) = UCD_upper(D) = UCD_title(D)
-     *     (This third criterium does not add any characters to the list
+     *     (This third criterion does not add any characters to the list
      *      for Unicode 3.2. Ignored.)
      *
      * D2. A character C is defined to be case-ignorable
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/lang/UScriptRun.java b/icu4j/main/classes/core/src/com/ibm/icu/lang/UScriptRun.java
index e9cbed6..f004f99 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/lang/UScriptRun.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/lang/UScriptRun.java
@@ -86,7 +86,7 @@
     
     /**
      * Construct a <code>UScriptRun</code> object which iterates over a subrange
-     * of the characetrs in the given string.
+     * of the characters in the given string.
      *
      * @param text the string of characters over which to iterate.
      * @param start the index of the first character over which to iterate
@@ -103,7 +103,7 @@
 
     /**
      * Construct a <code>UScriptRun</code> object which iterates over the given
-     * characetrs.
+     * characters.
      *
      * @param chars the array of characters over which to iterate.
      *
@@ -118,7 +118,7 @@
 
     /**
      * Construct a <code>UScriptRun</code> object which iterates over a subrange
-     * of the given characetrs.
+     * of the given characters.
      *
      * @param chars the array of characters over which to iterate.
      * @param start the index of the first character over which to iterate
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/math/BigDecimal.java b/icu4j/main/classes/core/src/com/ibm/icu/math/BigDecimal.java
index 48706cd..be4ca3b 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/math/BigDecimal.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/math/BigDecimal.java
@@ -90,7 +90,7 @@
 /*            constructor, no blanks in string constructor, add       */
 /*            offset and length version of char[] constructor;        */
 /*            add valueOf(double); drop booleanValue, charValue;      */
-/*            add ...Exact versions of remaining convertors           */
+/*            add ...Exact versions of remaining converters           */
 /* 1999.03.13 add toBigIntegerExact                                   */
 /* 1999.03.13 1.00 release to IBM Centre for Java Technology          */
 /* 1999.05.27 1.01 correct 0-0.2 bug under scaled arithmetic          */
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/number/NumberRangeFormatterImpl.java b/icu4j/main/classes/core/src/com/ibm/icu/number/NumberRangeFormatterImpl.java
index 503344a..6a8bad4 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/number/NumberRangeFormatterImpl.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/number/NumberRangeFormatterImpl.java
@@ -297,7 +297,7 @@
                 // INNER MODIFIER
                 collapseInner = micros1.modInner.semanticallyEquivalent(micros2.modInner);
 
-                // All done checking for collapsability.
+                // All done checking for collapsibility.
                 break;
             }
 
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_UTF8.java b/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_UTF8.java
index facff32..5cbd63d 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_UTF8.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_UTF8.java
@@ -90,7 +90,7 @@
             // TODO: add plain ASCII as an explicitly detected type.
             confidence = 15;
         } else if (numValid > numInvalid*10) {
-            // Probably corruput utf-8 data.  Valid sequences aren't likely by chance.
+            // Probably corrupt utf-8 data.  Valid sequences aren't likely by chance.
             confidence = 25;
         }
         return confidence == 0 ? null : new CharsetMatch(det, this, confidence);
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_mbcs.java b/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_mbcs.java
index c65a1a2..a9a4af5 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_mbcs.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/CharsetRecog_mbcs.java
@@ -86,7 +86,7 @@
                 if (doubleByteCharCount == 0 && totalCharCount < 10) {
                     // There weren't any multibyte sequences, and there was a low density of non-ASCII single bytes.
                     // We don't have enough data to have any confidence.
-                    // Statistical analysis of single byte non-ASCII charcters would probably help here.
+                    // Statistical analysis of single byte non-ASCII characters would probably help here.
                     confidence = 0;
                 }
                 else {
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/DateFormatSymbols.java b/icu4j/main/classes/core/src/com/ibm/icu/text/DateFormatSymbols.java
index a044516..d6b2f1c 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/DateFormatSymbols.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/DateFormatSymbols.java
@@ -1503,7 +1503,7 @@
                 && arrayOfArrayEquals(zoneStrings, that.zoneStrings)
                 // getDiplayName maps deprecated country and language codes to the current ones
                 // too bad there is no way to get the current codes!
-                // I thought canolicalize() would map the codes but .. alas! it doesn't.
+                // I thought canonicalize() would map the codes but .. alas! it doesn't.
                 && requestedLocale.getDisplayName().equals(that.requestedLocale.getDisplayName())
                 && Utility.arrayEquals(localPatternChars,
                                        that.localPatternChars));
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java b/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java
index 925576a..29a408b 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/MessageFormat.java
@@ -980,7 +980,7 @@
      * <p>
      * The text substituted for the individual format elements is derived from
      * the current subformat of the format element and the
-     * <code>arguments</code> value corresopnding to the format element's
+     * <code>arguments</code> value corresponding to the format element's
      * argument name.
      * <p>
      * A numbered pattern argument is matched with a map key that contains that number
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/MessagePatternUtil.java b/icu4j/main/classes/core/src/com/ibm/icu/text/MessagePatternUtil.java
index d7d1c61..2c76fb5 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/MessagePatternUtil.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/MessagePatternUtil.java
@@ -398,7 +398,7 @@
 
     /**
      * A Node representing a nested message (nested inside an argument)
-     * with its selection criterium.
+     * with its selection criterion.
      * @stable ICU 49
      */
     public static class VariantNode extends Node {
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/NFRule.java b/icu4j/main/classes/core/src/com/ibm/icu/text/NFRule.java
index fe1b8f5..9d887cb 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/NFRule.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/NFRule.java
@@ -722,7 +722,7 @@
     }
 
     /**
-     * Returns the rule's divisor (the value that cotrols the behavior
+     * Returns the rule's divisor (the value that controls the behavior
      * of its substitutions)
      * @return The rule's divisor
      */
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/SCSU.java b/icu4j/main/classes/core/src/com/ibm/icu/text/SCSU.java
index 3e3eab2..5a7360f 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/SCSU.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/SCSU.java
@@ -177,7 +177,7 @@
         0x0100,  // Latin Extended-A
         0x0300,  // Combining Diacritical Marks
         0x2000,  // General Punctuation
-        0x2080,  // Curency Symbols
+        0x2080,  // Currency Symbols
         0x2100,  // Letterlike Symbols and Number Forms
         0x3000   // CJK Symbols and Punctuation
     };
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java b/icu4j/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java
index df50170..dfa492b 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/SpoofChecker.java
@@ -801,7 +801,7 @@
 
         /*
          * *****************************************************************************
-         * Internal classes for compililing confusable data into its binary (runtime) form.
+         * Internal classes for compiling confusable data into its binary (runtime) form.
          * *****************************************************************************
          */
         // ---------------------------------------------------------------------
@@ -1773,7 +1773,7 @@
     //
     // String Table:
     //     The strings table contains all of the value strings (those of length two or greater)
-    //     concatentated together into one long char (UTF-16) array.
+    //     concatenated together into one long char (UTF-16) array.
     //
     //     There is no nul character or other mark between adjacent strings.
     //
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/StringPrep.java b/icu4j/main/classes/core/src/com/ibm/icu/text/StringPrep.java
index 04d234e..8019f40 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/StringPrep.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/StringPrep.java
@@ -432,7 +432,7 @@
                     ch -= val.value;
                 }
             }else if(val.type == DELETE){
-                // just consume the codepoint and contine
+                // just consume the codepoint and continue
                 continue;
             }
             //copy the source into destination
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/UTF16.java b/icu4j/main/classes/core/src/com/ibm/icu/text/UTF16.java
index 3e60b68..55636cf 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/UTF16.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/UTF16.java
@@ -2416,7 +2416,7 @@
          * Sets the Comparator to case-insensitive comparison mode if argument is true, otherwise
          * case sensitive comparison mode if set to false.
          *
-         * @param ignorecase True for case-insitive comparison, false for case sensitive comparison
+         * @param ignorecase True for case-insensitive comparison, false for case sensitive comparison
          * @param foldcaseoption FOLD_CASE_DEFAULT or FOLD_CASE_EXCLUDE_SPECIAL_I. This option is used only
          *            when ignorecase is set to true. If ignorecase is false, this option is
          *            ignored.
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/UnicodeSet.java b/icu4j/main/classes/core/src/com/ibm/icu/text/UnicodeSet.java
index 3bcb686..5aaf044 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/text/UnicodeSet.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/text/UnicodeSet.java
@@ -1313,7 +1313,7 @@
         else if (i > 0 && c == list[i-1]) {
             // c is after end of prior range
             list[i-1]++;
-            // no need to chcek for collapse here
+            // no need to check for collapse here
         }
 
         else {
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/Calendar.java b/icu4j/main/classes/core/src/com/ibm/icu/util/Calendar.java
index f428731..d303e2c 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/Calendar.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/Calendar.java
@@ -554,7 +554,7 @@
  *     between days at sunset or at other times, all ICU4J calendars
  *     transition between days at <em>local zone midnight</em>.  This
  *     allows ICU4J to centralize the time computations in
- *     <code>Calendar</code> and to maintain basic correpsondences
+ *     <code>Calendar</code> and to maintain basic correspondences
  *     between calendar systems. Affected fields: {@link #AM_PM},
  *     {@link #HOUR}, {@link #HOUR_OF_DAY}, {@link #MINUTE},
  *     {@link #SECOND}, {@link #MILLISECOND},
@@ -1935,7 +1935,7 @@
         for (int i = 0; i < caltypes.length; i++) {
             values.add(caltypes[i]);
         }
-        // then, add other available clanedars
+        // then, add other available calendars
         for (CalType t : CalType.values()) {
             if (!values.contains(t.getId())) {
                 values.add(t.getId());
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/GregorianCalendar.java b/icu4j/main/classes/core/src/com/ibm/icu/util/GregorianCalendar.java
index 68ee21f..9117acb 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/GregorianCalendar.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/GregorianCalendar.java
@@ -777,7 +777,7 @@
             // with 8 AD.  Before 8 AD the spacing is irregular; every 3 years
             // from 45 BC to 9 BC, and then none until 8 AD.  However, we don't
             // implement this historical detail; instead, we implement the
-            // computatinally cleaner proleptic calendar, which assumes
+            // computationally cleaner proleptic calendar, which assumes
             // consistent 4-year cycles throughout time.
             boolean isLeap = ((eyear&0x3) == 0); // equiv. to (eyear%4 == 0)
             
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/RangeValueIterator.java b/icu4j/main/classes/core/src/com/ibm/icu/util/RangeValueIterator.java
index 7525390..044aa52 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/RangeValueIterator.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/RangeValueIterator.java
@@ -53,7 +53,7 @@
 
     /**
     * Return result wrapper for com.ibm.icu.util.RangeValueIterator.
-    * Stores the start and limit of the continous result range and the
+    * Stores the start and limit of the continuous result range and the
     * common value all integers between [start, limit - 1] has.
     * @stable ICU 2.6
     */
@@ -74,7 +74,7 @@
         */
         public int limit;
         /**
-        * Gets the common value of the continous result range
+        * Gets the common value of the continuous result range
         * @stable ICU 2.6
         */
         public int value;
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/ULocale.java b/icu4j/main/classes/core/src/com/ibm/icu/util/ULocale.java
index 981a348..a7b77a6 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/ULocale.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/ULocale.java
@@ -621,7 +621,7 @@
      * user.language property, a security exception will be thrown,
      * and the default ULocale will remain unchanged.
      * <p>
-     * By setting the default ULocale with this method, all of the default categoy locales
+     * By setting the default ULocale with this method, all of the default category locales
      * are also set to the specified default ULocale.
      * @param newLocale the new default locale
      * @throws SecurityException if a security manager exists and its
@@ -4063,7 +4063,7 @@
          * effect.  The attribute must not be null and must be well-formed
          * or an exception is thrown.
          *
-         * <p>Attribute comparision for removal is case-insensitive.
+         * <p>Attribute comparison for removal is case-insensitive.
          *
          * @param attribute the attribute
          * @return This builder.
diff --git a/icu4j/main/classes/core/src/com/ibm/icu/util/UResourceTypeMismatchException.java b/icu4j/main/classes/core/src/com/ibm/icu/util/UResourceTypeMismatchException.java
index 4a9669c..836fcae 100644
--- a/icu4j/main/classes/core/src/com/ibm/icu/util/UResourceTypeMismatchException.java
+++ b/icu4j/main/classes/core/src/com/ibm/icu/util/UResourceTypeMismatchException.java
@@ -20,7 +20,7 @@
     static final long serialVersionUID = 1286569061095434541L;
     
     /**
-     * Constuct the exception with the given message
+     * Construct the exception with the given message
      * @param msg the error message for this exception
      * @stable ICU 3.0
      */
diff --git a/icu4j/main/classes/translit/src/com/ibm/icu/text/Transliterator.java b/icu4j/main/classes/translit/src/com/ibm/icu/text/Transliterator.java
index 6966a7c..6f625c3 100644
--- a/icu4j/main/classes/translit/src/com/ibm/icu/text/Transliterator.java
+++ b/icu4j/main/classes/translit/src/com/ibm/icu/text/Transliterator.java
@@ -362,7 +362,7 @@
  *
  * <p>It is also possible to match the beginning or the end of the text using a <code>UnicodeSet</code>.
  * This is done by including a virtual anchor character '<code>$</code>' at the end of the
- * set pattern. Although this is usually the match chafacter for the end anchor, the set will
+ * set pattern. Although this is usually the match character for the end anchor, the set will
  * match either the beginning or the end of the text, depending on its placement. For
  * example:
  *
diff --git a/icu4j/main/classes/translit/src/com/ibm/icu/text/TransliteratorParser.java b/icu4j/main/classes/translit/src/com/ibm/icu/text/TransliteratorParser.java
index bbfc33d..9e300a7 100644
--- a/icu4j/main/classes/translit/src/com/ibm/icu/text/TransliteratorParser.java
+++ b/icu4j/main/classes/translit/src/com/ibm/icu/text/TransliteratorParser.java
@@ -943,7 +943,7 @@
                 if (c == RULE_COMMENT_CHAR) {
                     pos = rule.indexOf("\n", pos) + 1;
                     if (pos == 0) {
-                        break; // No "\n" found; rest of rule is a commnet
+                        break; // No "\n" found; rest of rule is a comment
                     }
                     continue; // Either fall out or restart with next line
                 }
diff --git a/icu4j/main/tests/collate/src/com/ibm/icu/dev/test/collator/CollationAPITest.java b/icu4j/main/tests/collate/src/com/ibm/icu/dev/test/collator/CollationAPITest.java
index 1415ade..718c863 100644
--- a/icu4j/main/tests/collate/src/com/ibm/icu/dev/test/collator/CollationAPITest.java
+++ b/icu4j/main/tests/collate/src/com/ibm/icu/dev/test/collator/CollationAPITest.java
@@ -117,7 +117,7 @@
 
         byte key2identical[] = key2.toByteArray();
 
-        logln("Use secondary comparision level testing ...");
+        logln("Use secondary comparison level testing ...");
         col.setStrength(Collator.SECONDARY);
 
         key1 = col.getCollationKey(test1);
@@ -234,17 +234,17 @@
         // there is no reason to have canonical decomposition in en_US OR default locale */
         if (vi_VN.getDecomposition() != Collator.CANONICAL_DECOMPOSITION)
         {
-            errln("vi_VN collation did not have cannonical decomposition for normalization!");
+            errln("vi_VN collation did not have canonical decomposition for normalization!");
         }
 
         if (el_GR.getDecomposition() != Collator.CANONICAL_DECOMPOSITION)
         {
-            errln("el_GR collation did not have cannonical decomposition for normalization!");
+            errln("el_GR collation did not have canonical decomposition for normalization!");
         }
 
         if (en_US.getDecomposition() != Collator.NO_DECOMPOSITION)
         {
-            errln("en_US collation had cannonical decomposition for normalization!");
+            errln("en_US collation had canonical decomposition for normalization!");
         }
     }
 
diff --git a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java
index e658c4d..a3a4117 100644
--- a/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java
+++ b/icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java
@@ -3746,7 +3746,7 @@
             errln("Comparison should return false.");
         }
         if (!ca.equals(ca)) {
-            errln("Comparision should return true.");
+            errln("comparison should return true.");
         }
         if (ca.equals(cb)) {
             errln("Comparison should return false.");
diff --git a/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/GatherAPIData.java b/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/GatherAPIData.java
index ca4707e..47d249e 100644
--- a/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/GatherAPIData.java
+++ b/icu4j/tools/build/src/com/ibm/icu/dev/tool/docs/GatherAPIData.java
@@ -234,7 +234,7 @@
         if (doc.isMethod() && doc.containingClass().isEnum()) {
             // System.out.println("*** " + doc.qualifiedName() + " pos: " +
             //                    doc.position().line() +
-            //                    " containined by: " +
+            //                    " contained by: " +
             //                    doc.containingClass().name() +
             //                    " pos: " +
             //                    doc.containingClass().position().line());
diff --git a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonGSUBBuilder.java b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonGSUBBuilder.java
index f0933fd..8cb1ebc 100644
--- a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonGSUBBuilder.java
+++ b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonGSUBBuilder.java
@@ -133,7 +133,7 @@
                     break;
                     
                 case UCharacter.DecompositionType.CANONICAL:
-                    //cannonicalTree.insert(decomposition + UCharacter.toString(ligature));
+                    //canonicalTree.insert(decomposition + UCharacter.toString(ligature));
                     break;
                 }
             }
diff --git a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonicalCharacterData.java b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonicalCharacterData.java
index 5c6c3c1..ea02dde 100644
--- a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonicalCharacterData.java
+++ b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/layout/CanonicalCharacterData.java
@@ -35,7 +35,7 @@
             
             for (String equiv = iterator.next(); equiv != null; equiv = iterator.next()) {
                 // Skip all equivalents of length 1; it's either the original
-                // characeter or something like Angstrom for A-Ring, which we don't care about
+                // character or something like Angstrom for A-Ring, which we don't care about
                 if (UTF16.countCodePoint(equiv) > 1) {
                     equivs.add(equiv);
                 }
diff --git a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/timescale/CalculateLimits.java b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/timescale/CalculateLimits.java
index 021aedd..ca8b25b 100644
--- a/icu4j/tools/misc/src/com/ibm/icu/dev/tool/timescale/CalculateLimits.java
+++ b/icu4j/tools/misc/src/com/ibm/icu/dev/tool/timescale/CalculateLimits.java
@@ -40,7 +40,7 @@
      * the (internal) <code>toBigDecimalTrunc()</code> method. Any values outside
      * of the range of a <code>long</code> are pinned.
      * 
-     * The mimimum and maximum values for <code>toLong</code> are calulated by passing
+     * The mimimum and maximum values for <code>toLong</code> are calculated by passing
      * the min and max values calculated above to <code>BigDecimalFrom()</code>. Because
      * this method will round, the returned values are adjusted to take this into account.
      * 
diff --git a/tools/colprobe/colprobe.cpp b/tools/colprobe/colprobe.cpp
index 7215f9d..f7502ea 100644
--- a/tools/colprobe/colprobe.cpp
+++ b/tools/colprobe/colprobe.cpp
@@ -1393,7 +1393,7 @@
 void addUtilityChars(UnicodeSet &exemplarUSet, UErrorCode &status) {
 
   // in order to get nice rules, we need to add some characters to the
-  // starting set. These are mostly parts of compatibity composed characters,
+  // starting set. These are mostly parts of compatibility composed characters,
   // such as L-middle dot (middle dot is 0x00B7). If we don't add these, we would
   // get a reset at a funky character, such as L-middle dot. This list will probably
   // grow.
diff --git a/tools/unicodetools/com/ibm/rbm/resources/RBManager.properties b/tools/unicodetools/com/ibm/rbm/resources/RBManager.properties
index 4dcb648..97f9257 100644
--- a/tools/unicodetools/com/ibm/rbm/resources/RBManager.properties
+++ b/tools/unicodetools/com/ibm/rbm/resources/RBManager.properties
@@ -646,7 +646,7 @@
 # @comment Dialog title for importing from XLIFF (.xlf) files
 import_XLF_title=XLIFF\ Files
 # @translated true @created 2001-01-26 @modified 2001-01-26 @creator Jared Jackson @modifier Jared Jackson
-# @comment Option for resolving conflcits on a case by case basis
+# @comment Option for resolving conflicts on a case by case basis
 import_conflict_prompt=Prompt\ for\ each\ conflict
 # @translated true @created 2001-02-07 @modified 2001-02-07 @creator Jared Jackson @modifier Jared Jackson
 # @comment Option specifying whether a group found in the target but not found in the active resource bundle should be created in the resource bundle or not
diff --git a/tools/unicodetools/com/ibm/rbm/resources/RBManager_de.properties b/tools/unicodetools/com/ibm/rbm/resources/RBManager_de.properties
index 820b904..4730637 100644
--- a/tools/unicodetools/com/ibm/rbm/resources/RBManager_de.properties
+++ b/tools/unicodetools/com/ibm/rbm/resources/RBManager_de.properties
@@ -646,7 +646,7 @@
 # @comment Dialog title for importing from XLIFF (.xlf) files
 import_XLF_title=XLIFF\ Datei\ im\ portieren
 # @translated true @created 2001-01-26 @modified 2001-02-09 @creator Jared Jackson @modifier Jared Jackson
-# @comment Option for resolving conflcits on a case by case basis
+# @comment Option for resolving conflicts on a case by case basis
 import_conflict_prompt=Bei\ jedem\ Konfilkt\ nachfragen
 # @translated true @created 2001-02-07 @modified 2001-02-09 @creator Jared Jackson @modifier Jared Jackson
 # @comment Option specifying whether a group found in the target but not found in the active resource bundle should be created in the resource bundle or not
diff --git a/tools/unicodetools/com/ibm/rbm/resources/RBManager_fi.properties b/tools/unicodetools/com/ibm/rbm/resources/RBManager_fi.properties
index 9af3445..c3bcf1f 100644
--- a/tools/unicodetools/com/ibm/rbm/resources/RBManager_fi.properties
+++ b/tools/unicodetools/com/ibm/rbm/resources/RBManager_fi.properties
@@ -649,7 +649,7 @@
 # @comment Dialot title for importing from XLIFF (.xlf) files
 import_XLF_title=XLIFF-tiedoston\ haku
 # @translated true @created 2001-12-17 @modified 2001-02-08 @creator Jared Jackson @modifier Jared Jackson
-# @comment Option for resolving conflcits on a case by case basis
+# @comment Option for resolving conflicts on a case by case basis
 import_conflict_prompt=Kysy\ jokaisen\ ongelman\ kohdalla
 # @translated true @created 2001-12-17 @modified 2001-02-08 @creator Jared Jackson @modifier Jared Jackson
 # @comment Option specifying whether a group found in the target but not found in the active resource bundle should be created in the resource bundle or not
diff --git a/tools/unicodetools/com/ibm/rbm/resources/RBManager_sv.properties b/tools/unicodetools/com/ibm/rbm/resources/RBManager_sv.properties
index c176e90..b0b13b7 100644
--- a/tools/unicodetools/com/ibm/rbm/resources/RBManager_sv.properties
+++ b/tools/unicodetools/com/ibm/rbm/resources/RBManager_sv.properties
@@ -649,7 +649,7 @@
 # @comment Dialot title for importing from XLIFF (.xlf) files
 import_XLF_title=XLIFF\ filimport
 # @translated true @created 2001-01-26 @modified 2001-02-19 @creator Jared Jackson @modifier Jared Jackson
-# @comment Option for resolving conflcits on a case by case basis
+# @comment Option for resolving conflicts on a case by case basis
 import_conflict_prompt=Fr\u00E5ga\ vid\ varje\ konflikt
 # @translated true @created 2001-02-07 @modified 2001-02-19 @creator Jared Jackson @modifier Jared Jackson
 # @comment Option specifying whether a group found in the target but not found in the active resource bundle should be created in the resource bundle or not