diff --git a/vp9/common/vp9_recon.c b/vp9/common/vp9_recon.c
index 41194504bb0a2aadffbe1d4a0c67d6cef4a2fd69..4ab4f394b510d8004e9ce0f8e606fa632c2ce35d 100644
--- a/vp9/common/vp9_recon.c
+++ b/vp9/common/vp9_recon.c
@@ -31,9 +31,10 @@ static INLINE void recon(int rows, int cols,
 void vp9_recon_b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr,
                    int stride) {
   assert(pred_ptr == dst_ptr);
-  recon(4, 4, diff_ptr, 16, dst_ptr, stride);
+  recon(4, 4, diff_ptr, 16 >> CONFIG_SB8X8, dst_ptr, stride);
 }
 
+#if !CONFIG_SB8X8
 void vp9_recon_uv_b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr,
                       int stride) {
   assert(pred_ptr == dst_ptr);
@@ -51,6 +52,7 @@ void vp9_recon2b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr,
   assert(pred_ptr == dst_ptr);
   recon(4, 8, diff_ptr, 8, dst_ptr, stride);
 }
+#endif
 
 static void recon_plane(MACROBLOCKD *xd, BLOCK_SIZE_TYPE bsize, int plane) {
   const int bw = 4 << (b_width_log2(bsize) - xd->plane[plane].subsampling_x);
diff --git a/vp9/common/vp9_rtcd_defs.sh b/vp9/common/vp9_rtcd_defs.sh
index 78cb786c2775b29abf61f2410f8ced79a94f442c..6725cdf481e84ac7916c019f5a00515d9297e3cb 100644
--- a/vp9/common/vp9_rtcd_defs.sh
+++ b/vp9/common/vp9_rtcd_defs.sh
@@ -63,6 +63,8 @@ specialize vp9_copy_mem8x4 mmx
 prototype void vp9_recon_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
 specialize vp9_recon_b
 
+if [ "$CONFIG_SB8X8" != "yes" ]; then
+
 prototype void vp9_recon_uv_b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, int stride"
 specialize vp9_recon_uv_b
 
@@ -76,6 +78,8 @@ prototype void vp9_recon4b "uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_p
 specialize vp9_recon4b
 # specialize vp9_recon4b sse2
 
+fi
+
 prototype void vp9_recon_sb "struct macroblockd *x, enum BLOCK_SIZE_TYPE bsize"
 specialize vp9_recon_sb