diff --git a/silk/log2lin.c b/silk/log2lin.c
index b0026e6458110fdec11aa2a5008b3706f6f9bd4d..33a19ad12bb799a55b16cd9e51987c4e118332dc 100644
--- a/silk/log2lin.c
+++ b/silk/log2lin.c
@@ -47,7 +47,7 @@ opus_int32 silk_log2lin(
     frac_Q7 = inLog_Q7 & 0x7F;
     if( inLog_Q7 < 2048 ) {
         /* Piece-wise parabolic approximation */
-        out = silk_ADD_RSHIFT( out, silk_MUL( out, silk_SMLAWB( frac_Q7, silk_SMULBB( frac_Q7, 128 - frac_Q7 ), -174 ) ), 7 );
+        out = silk_ADD_RSHIFT32( out, silk_MUL( out, silk_SMLAWB( frac_Q7, silk_SMULBB( frac_Q7, 128 - frac_Q7 ), -174 ) ), 7 );
     } else {
         /* Piece-wise parabolic approximation */
         out = silk_MLA( out, silk_RSHIFT( out, 7 ), silk_SMLAWB( frac_Q7, silk_SMULBB( frac_Q7, 128 - frac_Q7 ), -174 ) );