diff --git a/aom/aomcx.h b/aom/aomcx.h
index 621835a..e7ea71f 100644
--- a/aom/aomcx.h
+++ b/aom/aomcx.h
@@ -1502,7 +1502,8 @@
   int reference[7]; /**< Reference flag for each of the 7 references. */
   /*! Buffer slot index for each of 7 references. */
   int ref_idx[7];
-  int refresh[8]; /**< Refresh flag for each of the 8 slots. */
+  int refresh[8];    /**< Refresh flag for each of the 8 slots. */
+  int use_comp_pred; /**< Use compound prediction. */
 } aom_svc_ref_frame_config_t;
 
 /*!\cond */
diff --git a/av1/av1_cx_iface.c b/av1/av1_cx_iface.c
index e0f3ef5..3f67e46 100644
--- a/av1/av1_cx_iface.c
+++ b/av1/av1_cx_iface.c
@@ -3151,6 +3151,7 @@
   }
   for (unsigned int i = 0; i < REF_FRAMES; ++i)
     cpi->svc.refresh[i] = data->refresh[i];
+  cpi->svc.use_comp_pred = data->use_comp_pred;
   cpi->svc.use_flexible_mode = 1;
   cpi->svc.ksvc_fixed_mode = 0;
   return AOM_CODEC_OK;
diff --git a/av1/encoder/nonrd_pickmode.c b/av1/encoder/nonrd_pickmode.c
index b42ff27..86c186d 100644
--- a/av1/encoder/nonrd_pickmode.c
+++ b/av1/encoder/nonrd_pickmode.c
@@ -2480,10 +2480,15 @@
                          use_ref_frame_mask, &force_skip_low_temp_var);
 
   // Test compound modes: LAST_GOLDEN for 0/NEARESST/NEAR.
-  // For now to reduce slowdowm, uses only 0/0 for blocks above 16x16.
-  if (cpi->sf.rt_sf.use_comp_ref_nonrd && is_comp_ref_allowed(bsize) &&
-      bsize > BLOCK_16X16)
-    num_comp_modes = 1;
+  // For now to reduce slowdowm, use only 0/0 for blocks above 16x16
+  // for non-svc case or on enhancement layers for svc.
+  if (cpi->sf.rt_sf.use_comp_ref_nonrd && is_comp_ref_allowed(bsize)) {
+    if (cpi->ppi->use_svc && cpi->svc.use_comp_pred &&
+        cpi->svc.temporal_layer_id == 0)
+      num_comp_modes = 3;
+    else if (bsize > BLOCK_16X16)
+      num_comp_modes = 1;
+  }
 
   for (MV_REFERENCE_FRAME ref_frame_iter = LAST_FRAME;
        ref_frame_iter <= ALTREF_FRAME; ++ref_frame_iter) {
diff --git a/av1/encoder/speed_features.c b/av1/encoder/speed_features.c
index 8d8c270..b989c05 100644
--- a/av1/encoder/speed_features.c
+++ b/av1/encoder/speed_features.c
@@ -1212,6 +1212,13 @@
       sf->rt_sf.estimate_motion_for_var_based_partition = 0;
     }
   }
+  if (cpi->ppi->use_svc && cpi->svc.use_comp_pred &&
+      (cpi->svc.reference[GOLDEN_FRAME - 1] == 1 ||
+       cpi->svc.reference[LAST2_FRAME - 1] == 1)) {
+    sf->rt_sf.use_comp_ref_nonrd = 1;
+    sf->rt_sf.ref_frame_comp_nonrd =
+        (cpi->svc.reference[GOLDEN_FRAME - 1] == 1) ? 0 : 1;
+  }
 }
 
 // TODO(kyslov): now this is very similar to
diff --git a/av1/encoder/svc_layercontext.h b/av1/encoder/svc_layercontext.h
index 817e362..bda7be9 100644
--- a/av1/encoder/svc_layercontext.h
+++ b/av1/encoder/svc_layercontext.h
@@ -99,6 +99,7 @@
   int non_reference_frame;
   int use_flexible_mode;
   int ksvc_fixed_mode;
+  int use_comp_pred;
   /*!\endcond */
 
   /*!
diff --git a/examples/svc_encoder_rtc.c b/examples/svc_encoder_rtc.c
index 44bed38..35a1bd4 100644
--- a/examples/svc_encoder_rtc.c
+++ b/examples/svc_encoder_rtc.c
@@ -571,6 +571,7 @@
   layer_id->spatial_layer_id = spatial_layer_id;
   int lag_index = 0;
   int base_count = superframe_cnt >> 2;
+  ref_frame_config->use_comp_pred = 0;
   // Set the reference map buffer idx for the 7 references:
   // LAST_FRAME (0), LAST2_FRAME(1), LAST3_FRAME(2), GOLDEN_FRAME(3),
   // BWDREF_FRAME(4), ALTREF2_FRAME(5), ALTREF_FRAME(6).
