diff --git a/android_icu4j/src/main/java/android/icu/text/BreakIterator.java b/android_icu4j/src/main/java/android/icu/text/BreakIterator.java
index 12f4d5c..4f15265 100644
--- a/android_icu4j/src/main/java/android/icu/text/BreakIterator.java
+++ b/android_icu4j/src/main/java/android/icu/text/BreakIterator.java
@@ -543,7 +543,9 @@
     public static final int KIND_SENTENCE = 3;
     /**
      * <strong>[icu]</strong>
+     * @deprecated Use {@link #KIND_WORD} instead.
      */
+    @Deprecated
     public static final int KIND_TITLE = 4;
 
     /**
@@ -703,7 +705,9 @@
      * Unicode 3.2 only. For Unicode 4.0 and above title boundary iteration,
      * please use a word boundary iterator. {@link #getWordInstance}
      * @return A new instance of BreakIterator that locates title boundaries.
+     * @deprecated on Android but not deprecated in ICU
      */
+    @Deprecated
     public static BreakIterator getTitleInstance()
     {
         return getTitleInstance(ULocale.getDefault());
@@ -717,7 +721,9 @@
      * @param where A Locale specifying the language of the text being analyzed.
      * @return A new instance of BreakIterator that locates title boundaries.
      * @throws NullPointerException if <code>where</code> is null.
+     * @deprecated on Android but not deprecated in ICU
      */
+    @Deprecated
     public static BreakIterator getTitleInstance(Locale where)
     {
         return getBreakInstance(ULocale.forLocale(where), KIND_TITLE);
@@ -730,7 +736,9 @@
      * please use Word Boundary iterator.{@link #getWordInstance}
      * @param where A Locale specifying the language of the text being analyzed.
      * @return A new instance of BreakIterator that locates title boundaries.
-     * @throws NullPointerException if <code>where</code> is null.*/
+     * @throws NullPointerException if <code>where</code> is null.
+     * @deprecated on Android but not deprecated in ICU*/
+    @Deprecated
     public static BreakIterator getTitleInstance(ULocale where)
     {
         return getBreakInstance(where, KIND_TITLE);
diff --git a/tools/srcgen/javadoc_patches/patches/src/main/java/android/icu/text/BreakIterator.java.patch b/tools/srcgen/javadoc_patches/patches/src/main/java/android/icu/text/BreakIterator.java.patch
new file mode 100644
index 0000000..fb624b4
--- /dev/null
+++ b/tools/srcgen/javadoc_patches/patches/src/main/java/android/icu/text/BreakIterator.java.patch
@@ -0,0 +1,11 @@
+--- android_icu4j/src/main/java/android/icu/text/BreakIterator.java	2019-01-30 16:31:03.631387738 +0000
++++ android_icu4j/src/main/java/android/icu/text/BreakIterator.java	2019-01-30 16:29:57.372107027 +0000
+@@ -543,7 +543,7 @@
+     public static final int KIND_SENTENCE = 3;
+     /**
+      * <strong>[icu]</strong>
+-     * @deprecated on Android but not deprecated in ICU
++     * @deprecated Use {@link #KIND_WORD} instead.
+      */
+     @Deprecated
+     public static final int KIND_TITLE = 4;
diff --git a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
index 9dfc451..18a1f10 100644
--- a/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
+++ b/tools/srcgen/src/main/java/com/android/icu4j/srcgen/Icu4jTransform.java
@@ -706,8 +706,18 @@
    */
   private static final String[] ANDROID_DEPRECATED_SET = {
       /* ASCII order please. */
+
+      // See BreakIterator#getTitleInstance() below for deprecation reason.
+      "field:android.icu.text.BreakIterator#KIND_TITLE",
+
       // Unstable "constant" value - different values in different API levels. http://b/77850660.
       "field:android.icu.util.JapaneseCalendar#CURRENT_ERA",
+
+      // getTitleInstance(...) methods have been deprecated in Unicode 3.2 and are likely to be
+      // deprecated in ICU 64.
+      "method:android.icu.text.BreakIterator#getTitleInstance()",
+      "method:android.icu.text.BreakIterator#getTitleInstance(Locale)",
+      "method:android.icu.text.BreakIterator#getTitleInstance(ULocale)",
   };
 
   // The declarations with JavaDocs that have @.jcite tags that should be transformed to doclava
