diff --git a/src/write.c b/src/write.c
index 723302e..003914f 100644
--- a/src/write.c
+++ b/src/write.c
@@ -2272,7 +2272,7 @@
     return AVIF_RESULT_OK;
 }
 
-static avifResult avifWriteAltrGroup(avifRWStream * s, const avifEncoderItemIdArray * itemIDs)
+static avifResult avifWriteAltrGroup(avifRWStream * s, uint32_t groupID, const avifEncoderItemIdArray * itemIDs)
 {
     avifBoxMarker grpl;
     AVIF_CHECKRES(avifRWStreamWriteBox(s, "grpl", AVIF_BOX_SIZE_TBD, &grpl));
@@ -2280,7 +2280,7 @@
     avifBoxMarker altr;
     AVIF_CHECKRES(avifRWStreamWriteFullBox(s, "altr", AVIF_BOX_SIZE_TBD, 0, 0, &altr));
 
-    AVIF_CHECKRES(avifRWStreamWriteU32(s, 1));                        // unsigned int(32) group_id;
+    AVIF_CHECKRES(avifRWStreamWriteU32(s, groupID));                  // unsigned int(32) group_id;
     AVIF_CHECKRES(avifRWStreamWriteU32(s, (uint32_t)itemIDs->count)); // unsigned int(32) num_entities_in_group;
     for (uint32_t i = 0; i < itemIDs->count; ++i) {
         AVIF_CHECKRES(avifRWStreamWriteU32(s, (uint32_t)itemIDs->item_id[i])); // unsigned int(32) entity_id;
@@ -3294,7 +3294,15 @@
     // Write grpl/altr box
 
     if (encoder->data->alternativeItemIDs.count) {
-        AVIF_CHECKRES(avifWriteAltrGroup(&s, &encoder->data->alternativeItemIDs));
+        // Section 8.18.3.3 of ISO 14496-12 (ISOBMFF) says:
+        //   group_id is a non-negative integer assigned to the particular grouping that shall not be equal to any
+        //   group_id value of any other EntityToGroupBox, any item_ID value of the hierarchy level
+        //   (file, movie. or track) that contains the GroupsListBox, or any track_ID value (when the
+        //   GroupsListBox is contained in the file level).
+        AVIF_ASSERT_OR_RETURN(encoder->data->lastItemID < UINT16_MAX);
+        ++encoder->data->lastItemID;
+        const uint32_t groupID = encoder->data->lastItemID;
+        AVIF_CHECKRES(avifWriteAltrGroup(&s, groupID, &encoder->data->alternativeItemIDs));
     }
 
     // -----------------------------------------------------------------------
diff --git a/tests/data/goldens/paris_exif_xmp_gainmap_bigendian.jpg.avif.xml b/tests/data/goldens/paris_exif_xmp_gainmap_bigendian.jpg.avif.xml
index 9fd29ce..157342c 100644
--- a/tests/data/goldens/paris_exif_xmp_gainmap_bigendian.jpg.avif.xml
+++ b/tests/data/goldens/paris_exif_xmp_gainmap_bigendian.jpg.avif.xml
@@ -105,7 +105,7 @@
 </ItemPropertyAssociationBox>
 </ItemPropertiesBox>
 <GroupListBox Size="36" Type="grpl" Specification="iff" Container="meta" >
-<EntityToGroupTypeBox Size="28" Type="altr" Version="0" Flags="0" Specification="iff" Container="grpl" group_id="1">
+<EntityToGroupTypeBox Size="28" Type="altr" Version="0" Flags="0" Specification="iff" Container="grpl" group_id="6">
 <EntityToGroupTypeBoxEntry EntityID="2"/>
 <EntityToGroupTypeBoxEntry EntityID="1"/>
 </EntityToGroupTypeBox>
diff --git a/tests/data/goldens/paris_exif_xmp_gainmap_littleendian.jpg.avif.xml b/tests/data/goldens/paris_exif_xmp_gainmap_littleendian.jpg.avif.xml
index 811f1df..64cd712 100644
--- a/tests/data/goldens/paris_exif_xmp_gainmap_littleendian.jpg.avif.xml
+++ b/tests/data/goldens/paris_exif_xmp_gainmap_littleendian.jpg.avif.xml
@@ -105,7 +105,7 @@
 </ItemPropertyAssociationBox>
 </ItemPropertiesBox>
 <GroupListBox Size="36" Type="grpl" Specification="iff" Container="meta" >
-<EntityToGroupTypeBox Size="28" Type="altr" Version="0" Flags="0" Specification="iff" Container="grpl" group_id="1">
+<EntityToGroupTypeBox Size="28" Type="altr" Version="0" Flags="0" Specification="iff" Container="grpl" group_id="6">
 <EntityToGroupTypeBoxEntry EntityID="2"/>
 <EntityToGroupTypeBoxEntry EntityID="1"/>
 </EntityToGroupTypeBox>
diff --git a/tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml b/tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml
index 98a7cfe..1b3acab 100644
--- a/tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml
+++ b/tests/data/goldens/paris_exif_xmp_icc_gainmap_bigendian.jpg.avif.xml
@@ -107,7 +107,7 @@
 </ItemPropertyAssociationBox>
 </ItemPropertiesBox>
 <GroupListBox Size="36" Type="grpl" Specification="iff" Container="meta" >
-<EntityToGroupTypeBox Size="28" Type="altr" Version="0" Flags="0" Specification="iff" Container="grpl" group_id="1">
+<EntityToGroupTypeBox Size="28" Type="altr" Version="0" Flags="0" Specification="iff" Container="grpl" group_id="6">
 <EntityToGroupTypeBoxEntry EntityID="2"/>
 <EntityToGroupTypeBoxEntry EntityID="1"/>
 </EntityToGroupTypeBox>
diff --git a/tests/data/seine_hdr_gainmap_small_srgb.avif b/tests/data/seine_hdr_gainmap_small_srgb.avif
index 681edac..da4983d 100644
--- a/tests/data/seine_hdr_gainmap_small_srgb.avif
+++ b/tests/data/seine_hdr_gainmap_small_srgb.avif
Binary files differ
diff --git a/tests/data/seine_hdr_gainmap_srgb.avif b/tests/data/seine_hdr_gainmap_srgb.avif
index 6a79b9d..caaba4f 100644
--- a/tests/data/seine_hdr_gainmap_srgb.avif
+++ b/tests/data/seine_hdr_gainmap_srgb.avif
Binary files differ
diff --git a/tests/data/seine_sdr_gainmap_big_srgb.avif b/tests/data/seine_sdr_gainmap_big_srgb.avif
index fad5b61..a51244b 100644
--- a/tests/data/seine_sdr_gainmap_big_srgb.avif
+++ b/tests/data/seine_sdr_gainmap_big_srgb.avif
Binary files differ
diff --git a/tests/data/seine_sdr_gainmap_srgb.avif b/tests/data/seine_sdr_gainmap_srgb.avif
index b716742..09c4ba2 100644
--- a/tests/data/seine_sdr_gainmap_srgb.avif
+++ b/tests/data/seine_sdr_gainmap_srgb.avif
Binary files differ
