diff --git a/av1/common/txb_common.h b/av1/common/txb_common.h
index e852873..e3ef3f0 100644
--- a/av1/common/txb_common.h
+++ b/av1/common/txb_common.h
@@ -90,8 +90,8 @@
   const int col = (c - (row << bwl)) + TX_PAD_LEFT;
   const int stride = (1 << bwl) + TX_PAD_LEFT;
   const int pos = row * stride + col;
-  int mag = levels[pos - 1];
-  mag += levels[pos - stride];
+  int mag = AOMMIN(levels[pos - 1], MAX_BASE_BR_RANGE);
+  mag += AOMMIN(levels[pos - stride], MAX_BASE_BR_RANGE);
   mag = AOMMIN(mag, 6);
   if ((row < 2) && (col < (2 + TX_PAD_LEFT))) return mag;
   return mag + 7;
@@ -245,7 +245,7 @@
   const int stride = (1 << bwl) + TX_PAD_HOR;
   const int pos = row * stride + col;
   int mag = AOMMIN(levels[pos + 1], MAX_BASE_BR_RANGE);
-  mag += levels[pos + stride];
+  mag += AOMMIN(levels[pos + stride], MAX_BASE_BR_RANGE);
   switch (tx_class) {
     case TX_CLASS_2D:
       mag += AOMMIN(levels[pos + stride + 1], MAX_BASE_BR_RANGE);
@@ -278,14 +278,14 @@
   const int col = c - (row << bwl);
   const int stride = (1 << bwl) + TX_PAD_HOR;
   const int pos = row * stride + col;
-  int mag = levels[pos + 1];
-  mag += levels[pos + stride];
+  int mag = AOMMIN(levels[pos + 1], MAX_BASE_BR_RANGE);
+  mag += AOMMIN(levels[pos + stride], MAX_BASE_BR_RANGE);
   if (tx_class == TX_CLASS_2D) {
-    mag += levels[pos + stride + 1];
+    mag += AOMMIN(levels[pos + stride + 1], MAX_BASE_BR_RANGE);
   } else if (tx_class == TX_CLASS_VERT) {
-    mag += levels[pos + (stride << 1)];
+    mag += AOMMIN(levels[pos + (stride << 1)], MAX_BASE_BR_RANGE);
   } else {
-    mag += levels[pos + 2];
+    mag += AOMMIN(levels[pos + 2], MAX_BASE_BR_RANGE);
   }
   mag = AOMMIN((mag + 1) >> 1, 6);
   return mag;
