diff --git a/src/test/scala/leon/regression/testcases/TestCasesCompile.scala b/src/test/scala/leon/regression/testcases/TestCasesCompile.scala
index 64367b70d408c5cc36684ea4bc68879db5101fb0..994a619013f38a6ce51e1b15fcdf9d5ef49cc763 100644
--- a/src/test/scala/leon/regression/testcases/TestCasesCompile.scala
+++ b/src/test/scala/leon/regression/testcases/TestCasesCompile.scala
@@ -39,8 +39,8 @@ class TestCasesCompile extends LeonRegressionSuite {
       try {
         pipeline.run(ctx, List(f.getAbsolutePath))
       } catch {
-        case _: LeonFatalError =>
-          fail(" Failed to compile "+name)
+        case fe: LeonFatalError =>
+          fail(ctx, s"Failed to compile $name", fe)
       }
     }
   }
diff --git a/src/test/scala/leon/regression/verification/VerificationSuite.scala b/src/test/scala/leon/regression/verification/VerificationSuite.scala
index dd8b088795734c45d54009ad9ce16bf9de6bc0ef..2460d7791394e727d0d368a18f0482ddcf16bd44 100644
--- a/src/test/scala/leon/regression/verification/VerificationSuite.scala
+++ b/src/test/scala/leon/regression/verification/VerificationSuite.scala
@@ -66,16 +66,10 @@ trait VerificationSuite extends LeonRegressionSuite {
         }
       }
     } catch {
-      case _: LeonFatalError =>
-        ctx.reporter match {
-          case sr: TestSilentReporter =>
-            println("Unexpected fatal error:")
-            for (e <- sr.lastErrors) {
-              println(" "+e)
-            }
-          case _ =>
+      case fe: LeonFatalError =>
+        test("Compilation") {
+          fail(ctx, "Unexpected fatal error while setting up tests", fe)
         }
-        test("Compilation of test files in " + testDir + cat)(fail("Failed to compile"))
     }
   }
 
diff --git a/src/test/scala/leon/test/LeonRegressionSuite.scala b/src/test/scala/leon/test/LeonRegressionSuite.scala
index 929c2be3b2120e73d12426bd296ffb1411e25399..941cb9b90e6587a219ad33a4d40366d948af9260 100644
--- a/src/test/scala/leon/test/LeonRegressionSuite.scala
+++ b/src/test/scala/leon/test/LeonRegressionSuite.scala
@@ -39,7 +39,7 @@ trait LeonRegressionSuite extends FunSuite with Timeouts {
   }
 
   protected val all : String=>Boolean = (s : String) => true
-  
+
   def scanFilesIn(f: File, filter: String=>Boolean = all, recursive: Boolean = false): Iterable[File] = {
     Option(f.listFiles()).getOrElse(Array()).flatMap{f =>
       if (f.isDirectory && recursive) {
@@ -56,4 +56,21 @@ trait LeonRegressionSuite extends FunSuite with Timeouts {
 
     scanFilesIn(baseDir, filter, recursive)
   }
+
+  protected def fail(ctx: LeonContext, reason: String, fe: LeonFatalError): Nothing = {
+    val omsg = ctx.reporter match {
+      case sr: TestSilentReporter =>
+        sr.lastErrors ++= fe.msg
+        Some((sr.lastErrors ++ fe.msg).mkString("\n"))
+      case _ =>
+        fe.msg
+    }
+
+    val fullError = omsg match {
+      case Some(msg) => s"$reason:\n$msg"
+      case None => s"$reason"
+    }
+
+    throw new TestFailedException(fullError, fe, 5)
+  }
 }