diff --git a/silk/dred_decoder.c b/silk/dred_decoder.c
index 500f33b81287cacc4ad28f9427ef960b6a9a4450..acc79ec3a492b5c6dd34343b5db3634f1b041b81 100644
--- a/silk/dred_decoder.c
+++ b/silk/dred_decoder.c
@@ -68,7 +68,7 @@ int dred_ec_decode(OpusDRED *dec, const opus_uint8 *bytes, int num_bytes, int mi
   /*printf("%d %d %d\n", dred_offset, q0, dQ);*/
 
   //dred_decode_state(&ec, dec->state);
-  state_qoffset = q0*(DRED_LATENT_DIM+DRED_STATE_DIM) + DRED_STATE_DIM;
+  state_qoffset = q0*(DRED_LATENT_DIM+DRED_STATE_DIM) + DRED_LATENT_DIM;
   dred_decode_latents(
       &ec,
       dec->state,
diff --git a/silk/dred_encoder.c b/silk/dred_encoder.c
index 41228334e4242ce335a7c0c223f681acae86f6b8..3df420be2d8f89dd4ec083284c382aca9963acbc 100644
--- a/silk/dred_encoder.c
+++ b/silk/dred_encoder.c
@@ -230,7 +230,7 @@ int dred_encode_silk_frame(const DREDEnc *enc, unsigned char *buf, int max_chunk
     ec_enc_uint(&ec_encoder, enc->dred_offset, 32);
     ec_enc_uint(&ec_encoder, q0, 16);
     ec_enc_uint(&ec_encoder, dQ, 8);
-    state_qoffset = q0*(DRED_LATENT_DIM+DRED_STATE_DIM) + DRED_STATE_DIM;
+    state_qoffset = q0*(DRED_LATENT_DIM+DRED_STATE_DIM) + DRED_LATENT_DIM;
     dred_encode_latents(
         &ec_encoder,
         enc->initial_state,