diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c
index 15193cf005c7d808f1896fdffedbfbf9d1ce45b0..4cc04817e0ce06b77cbac00ff9e5628a76138b36 100644
--- a/celt/celt_encoder.c
+++ b/celt/celt_encoder.c
@@ -1593,7 +1593,8 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm,
       {
          nbCompressedBytes = IMAX(2, IMIN(nbCompressedBytes,
                (tmp+4*mode->Fs)/(8*mode->Fs)-!!st->signalling));
-         ec_enc_shrink(enc, nbCompressedBytes);
+         if (enc != NULL)
+            ec_enc_shrink(enc, nbCompressedBytes);
       }
       effectiveBytes = nbCompressedBytes - nbFilledBytes;
    }