diff --git a/src/opus_decoder.c b/src/opus_decoder.c
index 9e8071acea57a09649494c03862e0a874600d55a..00fd2abfe652914f350a34f950cf29b4de6a9aca 100644
--- a/src/opus_decoder.c
+++ b/src/opus_decoder.c
@@ -126,13 +126,14 @@ int opus_decoder_init(OpusDecoder *st, opus_int32 Fs, int channels)
 OpusDecoder *opus_decoder_create(opus_int32 Fs, int channels, int *error)
 {
    int ret;
+   OpusDecoder *st;
    if((Fs!=48000&&Fs!=24000&&Fs!=16000&&Fs!=12000&&Fs!=8000)||(channels!=1&&channels!=2))
    {
       if (error)
          *error = OPUS_BAD_ARG;
       return NULL;
    }
-   OpusDecoder *st = (OpusDecoder *)opus_alloc(opus_decoder_get_size(channels));
+   st = (OpusDecoder *)opus_alloc(opus_decoder_get_size(channels));
    if (st == NULL)
    {
       if (error)
diff --git a/src/opus_encoder.c b/src/opus_encoder.c
index 156412cf744c027f6f74e08c78516a280d40208d..964c5f8d7c8bb7754a80b0c99c852d838a08c109 100644
--- a/src/opus_encoder.c
+++ b/src/opus_encoder.c
@@ -359,6 +359,7 @@ static void stereo_fade(const opus_val16 *in, opus_val16 *out, opus_val16 g1, op
 OpusEncoder *opus_encoder_create(opus_int32 Fs, int channels, int application, int *error)
 {
    int ret;
+   OpusEncoder *st;
    if((Fs!=48000&&Fs!=24000&&Fs!=16000&&Fs!=12000&&Fs!=8000)||(channels!=1&&channels!=2)||
        (application != OPUS_APPLICATION_VOIP && application != OPUS_APPLICATION_AUDIO
        && application != OPUS_APPLICATION_RESTRICTED_LOWDELAY))
@@ -367,7 +368,7 @@ OpusEncoder *opus_encoder_create(opus_int32 Fs, int channels, int application, i
          *error = OPUS_BAD_ARG;
       return NULL;
    }
-   OpusEncoder *st = (OpusEncoder *)opus_alloc(opus_encoder_get_size(channels));
+   st = (OpusEncoder *)opus_alloc(opus_encoder_get_size(channels));
    if (st == NULL)
    {
       if (error)