diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index 928f3e153197949d70b7d7fb65417c249b00d6e3..e71593e40485c4c0bb15423c2780d3fcfeda0da4 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -1072,7 +1072,10 @@ static void mxf_write_index_table_segment(AVFormatContext *s)
 
     // index duration
     mxf_write_local_tag(pb, 8, 0x3F0D);
-    put_be64(pb, mxf->edit_units_count);
+    if (mxf->edit_unit_byte_count)
+        put_be64(pb, 0); // index table covers whole container
+    else
+        put_be64(pb, mxf->edit_units_count);
 
     // edit unit byte count
     mxf_write_local_tag(pb, 4, 0x3F05);
diff --git a/tests/lavf.regression.ref b/tests/lavf.regression.ref
index 4645c643ca676d425400a218dc579f597b431a40..e4ae9c7c209e770b6b09beebab8e16b435608c58 100644
--- a/tests/lavf.regression.ref
+++ b/tests/lavf.regression.ref
@@ -12,7 +12,7 @@ bfdec98337e6a9d89dc648d1e65a41db *./tests/data/b-lavf.mpg
 dfae2e9e7572c000bec1edb8ea3e6cf3 *./tests/data/b-lavf.mxf
 535097 ./tests/data/b-lavf.mxf
 ./tests/data/b-lavf.mxf CRC=0xd7ff387d
-0cf22217d46b55c4fd178890305f9025 *./tests/data/b-lavf.mxf_d10
+8e70bc1e7602bb07f02159d1a2dd69cd *./tests/data/b-lavf.mxf_d10
 5330989 ./tests/data/b-lavf.mxf_d10
 ./tests/data/b-lavf.mxf_d10 CRC=0xd241c8b6
 2e9bd99fbb121ae4887109e3a4169acd *./tests/data/b-lavf.ts