diff --git a/icu4c/source/data/BUILDRULES.py b/icu4c/source/data/BUILDRULES.py
index 30f8293..686e0fe 100644
--- a/icu4c/source/data/BUILDRULES.py
+++ b/icu4c/source/data/BUILDRULES.py
@@ -518,15 +518,17 @@
 
     # Generate res_index file
     synthetic_locales = set()
-    deprecates_xml_path = os.path.join(os.path.dirname(__file__), xml_filename)
-    deprecates_xml = ET.parse(deprecates_xml_path)
-    for child in deprecates_xml.getroot():
-        if child.tag == "alias":
-            synthetic_locales.add(child.attrib["from"])
-        elif child.tag == "emptyLocale":
-            synthetic_locales.add(child.attrib["locale"])
-        else:
-            raise ValueError("Unknown tag in deprecates XML: %s" % child.tag)
+    if not config.ignore_xml_deprecates:
+        deprecates_xml_path = os.path.join(
+            os.path.dirname(__file__), xml_filename)
+        deprecates_xml = ET.parse(deprecates_xml_path)
+        for child in deprecates_xml.getroot():
+            if child.tag == "alias":
+                synthetic_locales.add(child.attrib["from"])
+            elif child.tag == "emptyLocale":
+                synthetic_locales.add(child.attrib["locale"])
+            else:
+                raise ValueError("Unknown tag in deprecates XML: %s" % child.tag)
     index_input_files = []
     for f in input_files:
         file_stem = f.filename[f.filename.rfind("/")+1:-4]
