diff --git a/tools/fw-update/README.md b/tools/fw-update/README.md
index 32e6de1..b59b403 100644
--- a/tools/fw-update/README.md
+++ b/tools/fw-update/README.md
@@ -76,39 +76,46 @@
 
 - DeviceIDRecordCount: Supported, generated by the script
 - FirmwareDeviceIDRecords: which is a list of Individual Firmware Device ID
-  Records. Each such record can have the following properties: - RecordLength:
-  Supported, generated by the script - DescriptorCount: Supported, generated by
-  the script - DeviceUpdateOptionFlags: Supported, must be specified in metadata
-  file - add each bit that is to be set to 1 to the list
-  "DeviceUpdateOptionFlags" - ComponentImageSetVersionStringType: Supported -
-  only ASCII at the moment. Generated by the script -
-  ComponentImageSetVersionStringLength: Supported, generated by the script -
-  FirmwareDevicePackageDataLength: Not supported. Set to 0 by the script -
-  ApplicableComponents: Supported, must be specified in metadata file - specify
-  all "ComponentIdentifier" values that apply in the "ApplicableComponents"
-  list - ComponentImageSetVersionString: Supported, must be specified in
-  metadata file - RecordDescriptors: Metadata JSON must have a key called
-  "Descriptors", which is of type List. Each List entry corresponds to a
-  descriptor. The first entry is considered as the initial descriptor and the
-  type shall be one of the following 0x0000(PCI Vendor ID), 0x0001(IANA
-  Enterprise ID), 0x0002(UUID), 0x0003(PnP Vendor ID), 0x0004(ACPI Vendor ID).
-  The additional descriptors support initial descriptor types and additionally
-  0x0100(PCI Device ID), 0x0101(PCI Subsystem Vendor ID), 0x0102(PCI Subsystem
-  ID), 0x0103(PCI Revision ID), 0x0104(PnP Product Identifier), 0x0105(ACPI
-  Product Identifier), 0xFFFF(Vendor defined). For descriptor types other than
-  vendor defined the properties expected are DescriptorType and DescriptorData.
-  If the descriptor type is vendor defined, the properties expected are
-  DescriptorType, VendorDefinedDescriptorTitleString and
-  VendorDefinedDescriptorData. See below for details on properties: -
-  DescriptorType: Supported, must be specified in metadata file -
-  DescriptorLength: Supported, generated by the script - DescriptorData:
-  Supported, must be specified in metadata file as a hex string -
-  VendorDefinedDescriptorTitleStringType: Supported - only ASCII at the
-  moment. - VendorDefinedDescriptorTitleStringLength: Supported, generated by
-  the script - VendorDefinedDescriptorTitleString: Supported, must be specified
-  in metadata file - VendorDefinedDescriptorData: Supported, must be specified
-  in metadata file as a hex string - FirmwareDevicePackageData: Not supported at
-  the moment
+  Records. Each such record can have the following properties:
+  - RecordLength: Supported, generated by the script
+  - DescriptorCount: Supported, generated by the script
+  - DeviceUpdateOptionFlags: Supported, must be specified in metadata file
+    - add each bit that is to be set to 1 to the list "DeviceUpdateOptionFlags"
+  - ComponentImageSetVersionStringType: Supported - only ASCII at the moment.
+    Generated by the script
+  - ComponentImageSetVersionStringLength: Supported, generated by the script
+  - FirmwareDevicePackageDataLength: Not supported. Set to 0 by the script
+  - ApplicableComponents: Supported, must be specified in metadata file
+    - specify indexes of "ComponentImageInformationArea" values that apply in
+      the "ApplicableComponents" list
+  - ComponentImageSetVersionString: Supported, must be specified in metadata
+    file
+  - RecordDescriptors: Metadata JSON must have a key called "Descriptors", which
+    is of type List. Each List entry corresponds to a descriptor. The first
+    entry is considered as the initial descriptor and the type shall be one of
+    the following 0x0000(PCI Vendor ID), 0x0001(IANA Enterprise ID),
+    0x0002(UUID), 0x0003(PnP Vendor ID), 0x0004(ACPI Vendor ID). The additional
+    descriptors support initial descriptor types and additionally 0x0100(PCI
+    Device ID), 0x0101(PCI Subsystem Vendor ID), 0x0102(PCI Subsystem ID),
+    0x0103(PCI Revision ID), 0x0104(PnP Product Identifier), 0x0105(ACPI Product
+    Identifier), 0xFFFF(Vendor defined). For descriptor types other than vendor
+    defined the properties expected are DescriptorType and DescriptorData. If
+    the descriptor type is vendor defined, the properties expected are
+    DescriptorType, VendorDefinedDescriptorTitleString and
+    VendorDefinedDescriptorData. See below for details on properties:
+    - DescriptorType: Supported, must be specified in metadata file
+    - DescriptorLength: Supported, generated by the script
+    - DescriptorData: Supported, must be specified in metadata file as a hex
+      string
+    - VendorDefinedDescriptorTitleStringType: Supported - only ASCII at the
+      moment.
+    - VendorDefinedDescriptorTitleStringLength: Supported, generated by the
+      script
+    - VendorDefinedDescriptorTitleString: Supported, must be specified in
+      metadata file
+    - VendorDefinedDescriptorData: Supported, must be specified in metadata file
+      as a hex string
+  - FirmwareDevicePackageData: Not supported at the moment
 
 ## Downstream Device Identification Area
 
diff --git a/tools/fw-update/metadata-example.json b/tools/fw-update/metadata-example.json
index 185f985..ac080af 100644
--- a/tools/fw-update/metadata-example.json
+++ b/tools/fw-update/metadata-example.json
@@ -9,7 +9,7 @@
         {
             "DeviceUpdateOptionFlags": [0],
             "ComponentImageSetVersionString": "VersionString2",
-            "ApplicableComponents": [100, 200],
+            "ApplicableComponents": [0, 1],
             "Descriptors": [
                 {
                     "DescriptorType": 2,
@@ -29,7 +29,7 @@
         {
             "DeviceUpdateOptionFlags": [],
             "ComponentImageSetVersionString": "VersionString3",
-            "ApplicableComponents": [100, 200, 300],
+            "ApplicableComponents": [0, 1, 2],
             "Descriptors": [
                 {
                     "DescriptorType": 2,
@@ -40,7 +40,7 @@
         {
             "DeviceUpdateOptionFlags": [],
             "ComponentImageSetVersionString": "VersionString4",
-            "ApplicableComponents": [100],
+            "ApplicableComponents": [0],
             "Descriptors": [
                 {
                     "DescriptorType": 2,
diff --git a/tools/fw-update/pldm_fwup_pkg_creator.py b/tools/fw-update/pldm_fwup_pkg_creator.py
index 4c3d233..42e8a5a 100755
--- a/tools/fw-update/pldm_fwup_pkg_creator.py
+++ b/tools/fw-update/pldm_fwup_pkg_creator.py
@@ -215,9 +215,11 @@
         component_bitmap_bit_length, endian="little"
     )
     applicable_components.setall(0)
-    for component in components:
-        if component["ComponentIdentifier"] in applicable_components_list:
-            applicable_components[components.index(component)] = 1
+    for component_index in applicable_components_list:
+        if 0 <= component_index < len(components):
+            applicable_components[component_index] = 1
+        else:
+            sys.exit("ERROR: Applicable Component index not found.")
     return applicable_components
 
 
