diff --git a/libs/voipcodecs/src/lpc10_decode.c b/libs/voipcodecs/src/lpc10_decode.c
index 107542a68a..135373bfe7 100644
--- a/libs/voipcodecs/src/lpc10_decode.c
+++ b/libs/voipcodecs/src/lpc10_decode.c
@@ -66,7 +66,7 @@ static int32_t lpc10_random(lpc10_decode_state_t *s)
 
     /* The following is a 16 bit 2's complement addition,
        with overflow checking disabled */
-    s->y[s->k] += s->y[s->j];
+    s->y[s->k] = (int16_t)(s->y[s->k] + s->y[s->j]);
     ret_val = s->y[s->k];
     if (--s->k < 0)
         s->k = 4;
@@ -430,6 +430,7 @@ static int pitsyn(lpc10_decode_state_t *s,
                     ip = (int32_t) uvpit;
                 if (ip <= i - jused)
                 {
+					float f;
                     ++(*nout);
                     ipiti[*nout - 1] = ip;
                     *pitch = ip;
@@ -444,7 +445,8 @@ static int pitsyn(lpc10_decode_state_t *s,
                         xxy = expf(xxy);
                         rci[j + *nout*rci_dim1 + 1] = (xxy - 1.0f)/(xxy + 1.0f);
                     }
-                    rmsi[*nout - 1] = logf(s->rmso) + prop*(logf(*rms) - logf(s->rmso));
+					f = logf(*rms) - logf(s->rmso);
+                    rmsi[*nout - 1] = logf(s->rmso) + prop * f;
                     rmsi[*nout - 1] = expf(rmsi[*nout - 1]);
                 }
             }