diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c
index 80692eec73b3645d56703a372dfb8d4d03bd9d14..be07c65b486a3f28dbaf97a4b975dd921142d733 100644
--- a/libavcodec/flashsvenc.c
+++ b/libavcodec/flashsvenc.c
@@ -68,7 +68,6 @@ typedef struct FlashSVContext {
     AVCodecContext *avctx;
     uint8_t *previous_frame;
     AVFrame frame;
-    int first_frame;
     int image_width, image_height;
     int block_width, block_height;
     uint8_t* tmpblock;
@@ -113,8 +112,6 @@ static int flashsv_encode_init(AVCodecContext *avctx)
         return -1;
     }
 
-    s->first_frame = 1;
-
     // Needed if zlib unused or init aborted before deflateInit
     memset(&(s->zstream), 0, sizeof(z_stream));
 /*
@@ -241,14 +238,13 @@ static int flashsv_encode_frame(AVCodecContext *avctx, uint8_t *buf, int buf_siz
 
     *p = *pict;
 
-    if (s->first_frame) {
+    if (avctx->frame_number == 0) {
         s->previous_frame = av_mallocz(p->linesize[0]*s->image_height);
         if (!s->previous_frame) {
             av_log(avctx, AV_LOG_ERROR, "Memory allocation failed.\n");
             return -1;
         }
         I_frame = 1;
-        s->first_frame = 0;
     }
 
 #if 0