diff --git a/libavcodec/ra144.c b/libavcodec/ra144.c
index 6192cde57da2e30eb09eefb99fdd18146d0eef45..2918902c9f80939e573de2e63bf79748f271776c 100644
--- a/libavcodec/ra144.c
+++ b/libavcodec/ra144.c
@@ -251,11 +251,11 @@ static int eval_refl(int *refl, const int16_t *coefs, RA144Context *ractx)
         for (j=0; j <= i; j++)
             bp1[j] = ((bp2[j] - ((refl[i+1] * bp2[i-j]) >> 12)) * (0x1000000 / b)) >> 12;
 
-        refl[i] = bp1[i];
-
         if ((unsigned) bp1[i] + 0x1000 > 0x1fff)
             return 1;
 
+        refl[i] = bp1[i];
+
         FFSWAP(int *, bp1, bp2);
     }
     return 0;