diff --git a/libavcodec/gif.c b/libavcodec/gif.c
index 388f9b27182539e1e347b2b44423ed0ada1b1b99..98e31f053360e9cf00affd1d4b82e9a444ba6322 100644
--- a/libavcodec/gif.c
+++ b/libavcodec/gif.c
@@ -41,7 +41,6 @@
 
 typedef struct {
     const AVClass *class;
-    AVFrame picture;
     LZWState *lzw;
     uint8_t *buf;
     AVFrame *last_frame;
@@ -233,7 +232,7 @@ static int gif_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
                             const AVFrame *pict, int *got_packet)
 {
     GIFContext *s = avctx->priv_data;
-    AVFrame *const p = &s->picture;
+    AVFrame *const p = (AVFrame *)pict;
     uint8_t *outbuf_ptr, *end;
     const uint32_t *palette = NULL;
     int ret;
@@ -243,7 +242,6 @@ static int gif_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
     outbuf_ptr = pkt->data;
     end        = pkt->data + pkt->size;
 
-    *p = *pict;
     p->pict_type = AV_PICTURE_TYPE_I;
     p->key_frame = 1;