diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index a79fbaf4db41c5f782b809389f34b5a9ca270e07..42fbb9c19135ac95563548647cea4edad525ec86 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -788,7 +788,7 @@ ff_rm_parse_packet (AVFormatContext *s, AVIOContext *pb,
         rm->current_stream= st->id;
         ret = rm_assemble_video_frame(s, pb, rm, ast, pkt, len, seq, &timestamp);
         if(ret)
-            return ret; //got partial frame or error
+            return ret < 0 ? ret : -1; //got partial frame or error
     } else if (st->codec->codec_type == AVMEDIA_TYPE_AUDIO) {
         if ((ast->deint_id == DEINT_ID_GENR) ||
             (ast->deint_id == DEINT_ID_INT4) ||