diff --git a/libavcodec/apedec.c b/libavcodec/apedec.c
index a90a07fa7deff206fa91344428e8a4a4ac27cf37..dd372e275a4ed480f098e78bb0b06f3452cb8355 100644
--- a/libavcodec/apedec.c
+++ b/libavcodec/apedec.c
@@ -877,6 +877,12 @@ static int ape_decode_frame(AVCodecContext * avctx,
     return bytes_used;
 }
 
+static void ape_flush(AVCodecContext *avctx)
+{
+    APEContext *s = avctx->priv_data;
+    s->samples= 0;
+}
+
 AVCodec ape_decoder = {
     "ape",
     AVMEDIA_TYPE_AUDIO,
@@ -887,5 +893,6 @@ AVCodec ape_decoder = {
     ape_decode_close,
     ape_decode_frame,
     .capabilities = CODEC_CAP_SUBFRAMES,
+    .flush = ape_flush,
     .long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
 };