diff --git a/libavcodec/twinvq.c b/libavcodec/twinvq.c
index 66def845434789cb1ba036d8fc0632aad40170dc..31fefa4cf90ca7d98137f62100ae32d7296bfda8 100644
--- a/libavcodec/twinvq.c
+++ b/libavcodec/twinvq.c
@@ -521,7 +521,10 @@ int ff_twinvq_decode_frame(AVCodecContext *avctx, void *data,
 
     *got_frame_ptr = 1;
 
-    return ret;
+    // VQF can deliver packets 1 byte greater than block align
+    if (buf_size == avctx->block_align + 1)
+        return buf_size;
+    return avctx->block_align;
 }
 
 /**