diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 070917d091cf64898d7afae7689142efaaa6220e..b0f8136dcef416373170c6b2a133e26b6d41c326 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -298,7 +298,7 @@ unsigned long get_checksum(ByteIOContext *s){
 void init_checksum(ByteIOContext *s, unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), unsigned long checksum){
     s->update_checksum= update_checksum;
     if(s->update_checksum){
-        s->checksum= s->update_checksum(checksum, NULL, 0);
+        s->checksum= checksum;
         s->checksum_ptr= s->buf_ptr;
     }
 }
diff --git a/libavformat/nut.c b/libavformat/nut.c
index a33dfb89140d278a59bd14eee177ffcf4823caa2..6f78596e36c13e273f8790b469b354344988e39e 100644
--- a/libavformat/nut.c
+++ b/libavformat/nut.c
@@ -331,7 +331,7 @@ static int get_packetheader(NUTContext *nut, ByteIOContext *bc, int calculate_ch
 
     size= get_v(bc);
 
-    init_checksum(bc, calculate_checksum ? av_adler32_update : NULL, 0);
+    init_checksum(bc, calculate_checksum ? av_adler32_update : NULL, 1);
 
     nut->packet_start[2] = start;
     nut->written_packet_size= size;
@@ -476,7 +476,7 @@ static int put_packetheader(NUTContext *nut, ByteIOContext *bc, int max_size, in
     put_v(bc, nut->written_packet_size); /* forward ptr */
 
     if(calculate_checksum)
-        init_checksum(bc, av_adler32_update, 0);
+        init_checksum(bc, av_adler32_update, 1);
 
     return 0;
 }