diff --git a/src/opus_multistream_encoder.c b/src/opus_multistream_encoder.c
index 389a847799aa94acbe735bc6ffd2a207265f63a4..e722e31ab8ee9f10242944954ea6f5ac2018a13b 100644
--- a/src/opus_multistream_encoder.c
+++ b/src/opus_multistream_encoder.c
@@ -1032,7 +1032,10 @@ static int opus_multistream_encode_native
       /* If the opus_repacketizer_cat() fails, then something's seriously wrong
          with the encoder. */
       if (ret != OPUS_OK)
+      {
+         RESTORE_STACK;
          return OPUS_INTERNAL_ERROR;
+      }
       len = opus_repacketizer_out_range_impl(&rp, 0, opus_repacketizer_get_nb_frames(&rp),
             data, max_data_bytes-tot_size, s != st->layout.nb_streams-1, !vbr && s == st->layout.nb_streams-1);
       data += len;