diff --git a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
index f784b63fc4bc9d0d8c505691ff6685380fc2af58..f91fa5d2e2005c00359391862f3963dd080fa6d6 100644
--- a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
+++ b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
@@ -180,9 +180,9 @@ class FairZ3Solver(context : LeonContext) extends Solver(context) with AbstractZ
           (true, asMap)
         }
         case RuntimeError(msg) => {
-          reporter.info("- Model leads to runtime error: " + msg)
-          reporter.error(modelAsString)
-          (true, asMap)
+          reporter.info("- Invalid model")
+          //reporter.error(modelAsString)
+          (false, asMap)
         }
         case OK(BooleanLiteral(false)) => {
           reporter.info("- Invalid model.")
@@ -381,6 +381,9 @@ class FairZ3Solver(context : LeonContext) extends Solver(context) with AbstractZ
 
         reporter.info(" - Running Z3 search...")
 
+        //reporter.info("Searching in:\n"+solver.getAssertions.toSeq.mkString("\nAND\n"))
+        //reporter.info("Assumptions:\n"+(blockingSetAsZ3 ++ assumptionsAsZ3).mkString("  AND  "))
+
         val res = solver.checkAssumptions((blockingSetAsZ3 ++ assumptionsAsZ3) :_*)
 
         reporter.info(" - Finished search with blocked literals")
@@ -426,6 +429,8 @@ class FairZ3Solver(context : LeonContext) extends Solver(context) with AbstractZ
 
             val core = z3CoreToCore(solver.getUnsatCore)  
 
+            reporter.info("UNSAT BECAUSE: "+core.mkString(" AND "))
+
             if (!forceStop) {
               if (Settings.luckyTest) {
                 // we need the model to perform the additional test
@@ -438,8 +443,10 @@ class FairZ3Solver(context : LeonContext) extends Solver(context) with AbstractZ
 
               res2 match {
                 case Some(false) =>
+                  //reporter.info("UNSAT WITHOUT Blockers")
                   foundAnswer(Some(false), core = z3CoreToCore(solver.getUnsatCore))
                 case Some(true) =>
+                  //reporter.info("SAT WITHOUT Blockers")
                   if (Settings.luckyTest && !forceStop) {
                     // we might have been lucky :D
                     val (wereWeLucky, cleanModel) = validateAndDeleteModel(solver.getModel, entireFormula, varsInVC)
diff --git a/src/main/scala/leon/synthesis/DerivationTree.scala b/src/main/scala/leon/synthesis/DerivationTree.scala
deleted file mode 100644
index 0bf44b00e49d07d3b3ce28c3482c7ac3b5742207..0000000000000000000000000000000000000000
--- a/src/main/scala/leon/synthesis/DerivationTree.scala
+++ /dev/null
@@ -1,64 +0,0 @@
-package leon
-package synthesis
-
-/*
-class DerivationTree(root: RootTask)  {
-
-  private[this] var _nextID = 0
-
-  def nextID = {
-    _nextID += 1
-    _nextID
-  }
-
-  def escapeHTML(str: String) = str.replaceAll("<", "&lt;").replaceAll(">", "&gt;")
-
-  def toDot: String = {
-    val res = new StringBuffer()
-
-    res append "digraph D {\n"
-    res append " label=\"Derivation Tree\"\n"
-//    res append " rankdir=\"LR\"\n"
-
-    var taskNames = Map[Task, String]()
-    def taskName(t: Task) = {
-      taskNames.get(t) match {
-        case Some(name) =>
-          name
-        case None =>
-          val name = "task"+nextID
-          taskNames += t -> name
-          name
-      }
-    }
-
-    def printTask(t: Task) {
-
-      val node = taskName(t);
-
-      res append " "+node+" [ label = <<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\"><TR><TD BORDER=\"0\">"+t.rule+"</TD></TR><TR><TD BGCOLOR=\"indianred1\">"+escapeHTML(t.problem.toString)+"</TD></TR><TR><TD BGCOLOR=\"greenyellow\">"+escapeHTML(t.solution.map(_.toString).getOrElse("?"))+"</TD></TR></TABLE>> shape = \"none\" ];\n"
-
-      for (st <- t.solver.map(_.allSteps).flatten.flatMap(_.subSolvers.values)) {
-        res.append(" "+taskName(st)+" -> "+node+"\n")
-        printTask(st)
-      }
-
-    }
-
-
-    root.solverTask.foreach(printTask)
-
-    res append "}\n"
-
-    res.toString
-  }
-
-  def toDotFile(fname: String) {
-    import java.io.{BufferedWriter, FileWriter}
-    val out = new BufferedWriter(new FileWriter(fname))
-    out.write(toDot)
-    out.close()
-  }
-
-}
-*/
diff --git a/src/test/scala/leon/test/PureScalaPrograms.scala b/src/test/scala/leon/test/PureScalaPrograms.scala
index 92fbb68ebad3e674fec6c58b735ce7410421ab9f..f6241e682fb536c00b56b9af78d26e566e002a32 100644
--- a/src/test/scala/leon/test/PureScalaPrograms.scala
+++ b/src/test/scala/leon/test/PureScalaPrograms.scala
@@ -21,11 +21,14 @@ class PureScalaPrograms extends FunSuite {
   private def mkTest(file : File)(block: Output=>Unit) = {
     val fullName = file.getPath()
     val start = fullName.indexOf("regression")
+    val displayName = file.getAbsolutePath()
+/*
     val displayName = if(start != -1) {
       fullName.substring(start, fullName.length)
     } else {
       fullName
     }
+    */
 
     test("PureScala program %3d: [%s]".format(nextInt(), displayName)) {
       assert(file.exists && file.isFile && file.canRead,
@@ -67,7 +70,7 @@ class PureScalaPrograms extends FunSuite {
   forEachFileIn("regression/verification/purescala/valid") { output =>
     val Output(report, reporter) = output
     assert(report.totalConditions === report.totalValid,
-           "All verification conditions should be valid.")
+           "All verification conditions ("+report.totalConditions+") should be valid.")
     assert(reporter.errorCount === 0)
     assert(reporter.warningCount === 0)
   }