diff --git a/av1/common/av1_inv_txfm1d.c b/av1/common/av1_inv_txfm1d.c
index 3399b7c..3bd8686 100644
--- a/av1/common/av1_inv_txfm1d.c
+++ b/av1/common/av1_inv_txfm1d.c
@@ -19,24 +19,40 @@
   const int64_t maxValue = (1LL << (bit - 1)) - 1;
   const int64_t minValue = -(1LL << (bit - 1));
 
+  int in_range = 1;
+
   for (int i = 0; i < size; ++i) {
     if (buf[i] < minValue || buf[i] > maxValue) {
-      fprintf(stderr, "Error: coeffs contain out-of-range values\n");
-      fprintf(stderr, "stage: %d\n", stage);
-      fprintf(stderr, "node: %d\n", i);
-      fprintf(stderr, "allowed range: [%" PRId64 ";%" PRId64 "]\n", minValue,
-              maxValue);
-      fprintf(stderr, "coeffs: ");
-
-      fprintf(stderr, "[");
-      for (int j = 0; j < size; j++) {
-        if (j > 0) fprintf(stderr, ", ");
-        fprintf(stderr, "%d", input[j]);
-      }
-      fprintf(stderr, "]\n");
-      assert(0);
+      in_range = 0;
     }
   }
+
+  if (!in_range) {
+    fprintf(stderr, "Error: coeffs contain out-of-range values\n");
+    fprintf(stderr, "stage: %d\n", stage);
+    fprintf(stderr, "allowed range: [%" PRId64 ";%" PRId64 "]\n", minValue,
+            maxValue);
+
+    fprintf(stderr, "coeffs: ");
+
+    fprintf(stderr, "[");
+    for (int j = 0; j < size; j++) {
+      if (j > 0) fprintf(stderr, ", ");
+      fprintf(stderr, "%d", input[j]);
+    }
+    fprintf(stderr, "]\n");
+
+    fprintf(stderr, "   buf: ");
+
+    fprintf(stderr, "[");
+    for (int j = 0; j < size; j++) {
+      if (j > 0) fprintf(stderr, ", ");
+      fprintf(stderr, "%d", buf[j]);
+    }
+    fprintf(stderr, "]\n\n");
+  }
+
+  assert(in_range);
 }
 
 #define range_check(stage, input, buf, size, bit) \
