diff --git a/test/test-data.sha1 b/test/test-data.sha1
index 1a6406b5954154df147d39b334959b63476a9dc5..b8f668a78f79dca8fafdb3d67b51059016dda3df 100644
--- a/test/test-data.sha1
+++ b/test/test-data.sha1
@@ -589,3 +589,5 @@ b3c48382cf7d0454e83a02497c229d27720f9e20  vp90-2-11-size-351x287.webm.md5
 92a756469fa438220524e7fa6ac1d38c89514d17  vp90-2-12-droppable_2.ivf.md5
 c21e97e4ba486520118d78b01a5cb6e6dc33e190  vp90-2-12-droppable_3.ivf
 601abc9e4176c70f82ac0381365e9b151fdd24cd  vp90-2-12-droppable_3.ivf.md5
+61c640dad23cd4f7ad811b867e7b7e3521f4e3ba  vp90-2-13-largescaling.webm
+bca1b02eebdb088fa3f389fe0e7571e75a71f523  vp90-2-13-largescaling.webm.md5
diff --git a/test/test.mk b/test/test.mk
index 31baf059c07e72f7eb43c8d6b2eff816ae63defa..4d96bc69db3c2dc43a1a0bd2f3a8001662f135c9 100644
--- a/test/test.mk
+++ b/test/test.mk
@@ -694,6 +694,8 @@ LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-2-12-droppable_2.ivf
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-2-12-droppable_2.ivf.md5
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-2-12-droppable_3.ivf
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-2-12-droppable_3.ivf.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-2-13-largescaling.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-2-13-largescaling.webm.md5
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp91-2-04-yv444.webm
 LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp91-2-04-yv444.webm.md5
 
diff --git a/test/test_vectors.cc b/test/test_vectors.cc
index 175151eaff2bd33f940732714ec719bd5ddbdb75..8c789ffe7a4add966b13b1e63f1fa455c3e2381b 100644
--- a/test/test_vectors.cc
+++ b/test/test_vectors.cc
@@ -164,7 +164,7 @@ const char *const kVP9TestVectors[] = {
   "vp90-2-11-size-351x287.webm", "vp90-2-11-size-351x288.webm",
   "vp90-2-11-size-352x287.webm", "vp90-2-12-droppable_1.ivf",
   "vp90-2-12-droppable_2.ivf", "vp90-2-12-droppable_3.ivf",
-  "vp91-2-04-yv444.webm"
+  "vp90-2-13-largescaling.webm", "vp91-2-04-yv444.webm"
 };
 const int kNumVP9TestVectors = NELEMENTS(kVP9TestVectors);
 #endif  // CONFIG_VP9_DECODER
diff --git a/vp9/common/vp9_scale.c b/vp9/common/vp9_scale.c
index e0f1e34101c7b1e2457916fc6b9e2b1c2cea4033..d3405fcdb51029af1069ac31c72d9d57051c43e4 100644
--- a/vp9/common/vp9_scale.c
+++ b/vp9/common/vp9_scale.c
@@ -13,11 +13,11 @@
 #include "vp9/common/vp9_scale.h"
 
 static INLINE int scaled_x(int val, const struct scale_factors *sf) {
-  return val * sf->x_scale_fp >> REF_SCALE_SHIFT;
+  return (int)((int64_t)val * sf->x_scale_fp >> REF_SCALE_SHIFT);
 }
 
 static INLINE int scaled_y(int val, const struct scale_factors *sf) {
-  return val * sf->y_scale_fp >> REF_SCALE_SHIFT;
+  return (int)((int64_t)val * sf->y_scale_fp >> REF_SCALE_SHIFT);
 }
 
 static int unscaled_value(int val, const struct scale_factors *sf) {