diff --git a/libavcodec/diracdec.c b/libavcodec/diracdec.c
index d2262ebbf56929fd310a3cd61845a92e14618065..d2aaeab01151c202ad783e0d586145a91e1877cd 100644
--- a/libavcodec/diracdec.c
+++ b/libavcodec/diracdec.c
@@ -249,7 +249,7 @@ enum dirac_subband {
 /* magic number division by 3 from schroedinger */
 static inline int divide3(int x)
 {
-    return ((x+1)*21845 + 10922) >> 16;
+    return (int)((x+1U)*21845 + 10922) >> 16;
 }
 
 static DiracFrame *remove_frame(DiracFrame *framelist[], int picnum)