diff --git a/libavresample/audio_mix.c b/libavresample/audio_mix.c
index 12f5d24ba0f60eaea0bb9aa4470b6b5c4902e7b2..7ed32d80df387a125af6c882be47f99e0c5aff35 100644
--- a/libavresample/audio_mix.c
+++ b/libavresample/audio_mix.c
@@ -422,10 +422,6 @@ AudioMix *ff_audio_mix_alloc(AVAudioResampleContext *avr)
         av_free(matrix_dbl);
     }
 
-    ret = mix_function_init(am);
-    if (ret < 0)
-        goto error;
-
     return am;
 
 error:
@@ -704,5 +700,5 @@ int ff_audio_mix_set_matrix(AudioMix *am, const double *matrix, int stride)
         return AVERROR(EINVAL);
     }
 
-    return 0;
+    return mix_function_init(am);
 }