diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index 75724240a7e88367d6e33a77891f783bdaf249d1..d60ffceeee220b9d233a7775c747a584c3a92349 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -1112,7 +1112,7 @@ static void mxf_write_partition(AVFormatContext *s, int bodysid,
 
     if (!memcmp(key, body_partition_key, 16) && mxf->body_partitions_count > 1)
         put_be64(pb, mxf->body_partition_offset[mxf->body_partitions_count-2]); // PreviousPartition
-    else if (!memcmp(key, footer_partition_key, 16))
+    else if (!memcmp(key, footer_partition_key, 16) && mxf->body_partitions_count)
         put_be64(pb, mxf->body_partition_offset[mxf->body_partitions_count-1]); // PreviousPartition
     else
         put_be64(pb, 0);