diff --git a/libavcodec/g723_1.c b/libavcodec/g723_1.c
index aabb03d447b7476f4f63f0b27c72ae8eeb8be5bd..e917f5a50cec8a93186aefd2a7d881ccf0955cf9 100644
--- a/libavcodec/g723_1.c
+++ b/libavcodec/g723_1.c
@@ -290,6 +290,7 @@ static int scale_vector(int16_t *vector, int length)
     for (i = 0; i < length; i++)
         max = FFMAX(max, FFABS(vector[i]));
 
+    max   = FFMIN(max, 0x7FFF);
     bits  = normalize_bits(max, 15);
     scale = (bits == 15) ? 0x7FFF : (1 << bits);