diff --git a/libavcodec/g723_1.c b/libavcodec/g723_1.c
index 0aeea8798f46bf831581f85af5dffa07b0ebab75..b1679983e308b7576f614b028c78c145fe7b4d1d 100644
--- a/libavcodec/g723_1.c
+++ b/libavcodec/g723_1.c
@@ -543,8 +543,8 @@ static void gen_acb_excitation(int16_t *vector, int16_t *prev_excitation,
     /* Calculate adaptive vector */
     cb_ptr += subfrm.ad_cb_gain * 20;
     for (i = 0; i < SUBFRAME_LEN; i++) {
-        sum = ff_dot_product(residual + i, cb_ptr, PITCH_ORDER)<<1;
-        vector[i] = av_clipl_int32((sum << 1) + (1 << 15)) >> 16;
+        sum = ff_dot_product(residual + i, cb_ptr, PITCH_ORDER);
+        vector[i] = av_clipl_int32((sum << 2) + (1 << 15)) >> 16;
     }
 }