diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index e34d0e7..f66d854 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -585,8 +585,10 @@
 #endif
 int av1_intra_mode_ind[INTRA_MODES];
 int av1_intra_mode_inv[INTRA_MODES];
+#if CONFIG_EC_MULTISYMBOL
 int av1_inter_mode_ind[INTER_MODES];
 int av1_inter_mode_inv[INTER_MODES];
+#endif
 
 /* Array indices are identical to previously-existing INTRAMODECONTEXTNODES. */
 #if CONFIG_ALT_INTRA
@@ -1775,8 +1777,6 @@
                      BLOCK_SIZE_GROUPS);
   av1_tree_to_cdf_1D(av1_intra_mode_tree, fc->uv_mode_prob, fc->uv_mode_cdf,
                      INTRA_MODES);
-  av1_tree_to_cdf_1D(av1_inter_mode_tree, fc->inter_mode_probs,
-                     fc->inter_mode_cdf, INTER_MODE_CONTEXTS);
   av1_tree_to_cdf_2D(av1_intra_mode_tree, av1_kf_y_mode_prob, av1_kf_y_mode_cdf,
                      INTRA_MODES, INTRA_MODES);
 #endif
@@ -1785,6 +1785,8 @@
                      fc->switchable_interp_cdf, SWITCHABLE_FILTER_CONTEXTS);
   av1_tree_to_cdf_1D(av1_partition_tree, fc->partition_prob, fc->partition_cdf,
                      PARTITION_CONTEXTS);
+  av1_tree_to_cdf_1D(av1_inter_mode_tree, fc->inter_mode_probs,
+                     fc->inter_mode_cdf, INTER_MODE_CONTEXTS);
 #if !CONFIG_EXT_TX
   av1_tree_to_cdf_2D(av1_ext_tx_tree, fc->intra_ext_tx_prob,
                      fc->intra_ext_tx_cdf, EXT_TX_SIZES, TX_TYPES);
@@ -1818,6 +1820,10 @@
     av1_tree_to_cdf(av1_switchable_interp_tree, fc->switchable_interp_prob[j],
                     fc->switchable_interp_cdf[j]);
 
+  for (i = 0; i < INTER_MODE_CONTEXTS; ++i)
+    av1_tree_to_cdf(av1_inter_mode_tree, fc->inter_mode_probs[i],
+                    fc->inter_mode_cdf[i]);
+
 #if !CONFIG_EXT_TX
   for (i = TX_4X4; i < EXT_TX_SIZES; ++i)
     for (j = 0; j < TX_TYPES; ++j)
@@ -1838,10 +1844,6 @@
       av1_tree_to_cdf(av1_intra_mode_tree, cm->kf_y_prob[i][j],
                       cm->kf_y_cdf[i][j]);
 
-  for (i = 0; i < INTER_MODE_CONTEXTS; ++i)
-    av1_tree_to_cdf(av1_inter_mode_tree, fc->inter_mode_probs[i],
-                    fc->inter_mode_cdf[i]);
-
   for (i = 0; i < BLOCK_SIZE_GROUPS; ++i)
     av1_tree_to_cdf(av1_intra_mode_tree, fc->y_mode_prob[i], fc->y_mode_cdf[i]);
 
