diff --git a/src/main/scala/leon/codegen/CodeGeneration.scala b/src/main/scala/leon/codegen/CodeGeneration.scala
index e8b232715b1337f36355f8b40ccdb451b9ac65bb..cd2881c82b05bfd9b5e7f27ebd8fa163813f328d 100644
--- a/src/main/scala/leon/codegen/CodeGeneration.scala
+++ b/src/main/scala/leon/codegen/CodeGeneration.scala
@@ -26,34 +26,30 @@ trait CodeGeneration {
    *  vars is a mapping from local variables/ parameters to the offset of the respective JVM local register
    *  isStatic signifies if the current method is static (a function, in Leon terms) 
    */
-  case class Locals(
-    vars     : Map[Identifier, Int],
-    args     : Map[Identifier, Int],
-    closures : Map[Identifier, (String,String,String)],
-    private val isStatic : Boolean
+  class Locals private[codegen] (
+    vars   : Map[Identifier, Int],
+    args   : Map[Identifier, Int],
+    fields : Map[Identifier, (String,String,String)]
   ) {
     /** Fetches the offset of a local variable/ parameter from its identifier */
     def varToLocal(v: Identifier): Option[Int] = vars.get(v)
 
     def varToArg(v: Identifier): Option[Int] = args.get(v)
 
-    def varToClosure(v: Identifier): Option[(String,String,String)] = closures.get(v)
+    def varToField(v: Identifier): Option[(String,String,String)] = fields.get(v)
 
     /** Adds some extra variables to the mapping */
-    def withVars(newVars: Map[Identifier, Int]) = Locals(vars ++ newVars, args, closures, isStatic)
+    def withVars(newVars: Map[Identifier, Int]) = new Locals(vars ++ newVars, args, fields)
 
     /** Adds an extra variable to the mapping */
-    def withVar(nv: (Identifier, Int)) = Locals(vars + nv, args, closures, isStatic)
+    def withVar(nv: (Identifier, Int)) = new Locals(vars + nv, args, fields)
 
-    def withArgs(newArgs: Map[Identifier, Int]) = Locals(vars, args ++ newArgs, closures, isStatic)
+    def withArgs(newArgs: Map[Identifier, Int]) = new Locals(vars, args ++ newArgs, fields)
 
-    def withClosures(newClosures: Map[Identifier,(String,String,String)]) = Locals(vars, args, closures ++ newClosures, isStatic)
+    def withFields(newFields: Map[Identifier,(String,String,String)]) = new Locals(vars, args, fields ++ newFields)
   }
 
-  object NoLocals {
-    /** Make a [[Locals]] object without any local variables */
-    def apply(isStatic : Boolean) = new Locals(Map(), Map(), Map(), isStatic)
-  }
+  object NoLocals extends Locals(Map.empty, Map.empty, Map.empty)
 
   lazy val monitorID = FreshIdentifier("__$monitor")
 
@@ -203,7 +199,7 @@ trait CodeGeneration {
       case _ => bodyWithPre
     }
 
-    val locals = Locals(newMapping, Map.empty, Map.empty, isStatic)
+    val locals = NoLocals.withVars(newMapping)
 
     if (params.recordInvocations) {
       load(monitorID, ch)(locals)
@@ -292,7 +288,7 @@ trait CodeGeneration {
         val argMapping = nl.args.map(_.id).zipWithIndex.toMap
         val closureMapping = closures.map { case (id, jvmt) => id -> (afName, id.uniqueName, jvmt) }.toMap
 
-        val newLocals = locals.withArgs(argMapping).withClosures(closureMapping)
+        val newLocals = locals.withArgs(argMapping).withFields(closureMapping)
 
         val apch = apm.codeHandler
 
@@ -1353,7 +1349,7 @@ trait CodeGeneration {
       case Some(slot) =>
         ch << ALoad(1) << Ldc(slot) << AALOAD
         mkUnbox(id.getType, ch)
-      case None => locals.varToClosure(id) match {
+      case None => locals.varToField(id) match {
         case Some((afName, nme, tpe)) =>
           ch << ALoad(0) << GetField(afName, nme, tpe)
         case None => locals.varToLocal(id) match {
@@ -1405,10 +1401,13 @@ trait CodeGeneration {
     // accessor method
     locally {
       val parameters = if (requireMonitor) {
-        Seq("L" + MonitorClass + ";")
+        Seq(monitorID -> s"L$MonitorClass;")
       } else Seq()
-      
-      val accM = cf.addMethod(typeToJVM(lzy.returnType), accessorName, parameters : _*)
+
+      val paramMapping = parameters.map(_._1).zipWithIndex.toMap.mapValues(_ + (if (isStatic) 0 else 1))
+      val newLocs = NoLocals.withVars(paramMapping)
+
+      val accM = cf.addMethod(typeToJVM(lzy.returnType), accessorName, parameters.map(_._2) : _*)
       accM.setFlags( if (isStatic) {(
         METHOD_ACC_STATIC | // FIXME other flags? Not always public?
         METHOD_ACC_PUBLIC
@@ -1420,9 +1419,10 @@ trait CodeGeneration {
       val initLabel = ch.getFreshLabel("isInitialized")
       
       if (requireMonitor) {
-        ch << ALoad(if (isStatic) 0 else 1) << InvokeVirtual(MonitorClass, "onInvoke", "()V") 
+        load(monitorID, ch)(newLocs)
+        ch << InvokeVirtual(MonitorClass, "onInvoke", "()V")
       }
-      
+
       if (isStatic) {
         ch << GetStatic(cName, underlyingName, underlyingType)
       } else {
@@ -1433,7 +1433,7 @@ trait CodeGeneration {
       // null
       ch << POP
       // 
-      mkBoxedExpr(body,ch)(NoLocals(isStatic)) // lzy = <expr> 
+      mkBoxedExpr(body,ch)(newLocs) // lzy = <expr> 
       ch << DUP
       // newValue, newValue 
       if (isStatic) {
@@ -1451,8 +1451,8 @@ trait CodeGeneration {
       lzy.returnType match {
         case ValueType() =>
           // Since the underlying field only has boxed types, we have to unbox them to return them
-          mkUnbox(lzy.returnType, ch)(NoLocals(isStatic)) 
-          ch << IRETURN      
+          mkUnbox(lzy.returnType, ch)(newLocs)
+          ch << IRETURN
         case _ =>
           ch << ARETURN
       }
@@ -1488,7 +1488,7 @@ trait CodeGeneration {
    *  @param lzy the lazy field to be initialized
    *  @param isStatic true if this is a static field
    */
-  def initLazyField(ch: CodeHandler, className : String,  lzy : FunDef, isStatic: Boolean) = {
+  def initLazyField(ch: CodeHandler, className: String,  lzy: FunDef, isStatic: Boolean)(implicit locals: Locals) = {
     val (_, name, _) = leonFunDefToJVMInfo(lzy).get
     val underlyingName = underlyingField(name) 
     val jvmType = typeToJVMBoxed(lzy.returnType)
@@ -1505,13 +1505,13 @@ trait CodeGeneration {
    *  @param field the field to be initialized
    *  @param isStatic true if this is a static field
    */
-  def initStrictField(ch : CodeHandler, className : String, field: FunDef,  isStatic: Boolean) { 
+  def initStrictField(ch: CodeHandler, className: String, field: FunDef, isStatic: Boolean)(implicit locals: Locals) {
     val (_, name , _) = leonFunDefToJVMInfo(field).get
     val body = field.body.getOrElse(throw CompilationException("No body for field?"))
     val jvmType = typeToJVM(field.returnType)
-    
-    mkExpr(body, ch)(NoLocals(isStatic))
-    
+
+    mkExpr(body, ch)
+
     if (isStatic){
       ch << PutStatic(className, name, jvmType)
     } else {
@@ -1560,13 +1560,17 @@ trait CodeGeneration {
     // definition of the constructor
     locally {
       val constrParams = if (requireMonitor) {
-        Seq("L" + MonitorClass + ";")
+        Seq(monitorID -> s"L$MonitorClass;")
       } else Seq()
-      
-      val cch = cf.addConstructor(constrParams : _*).codeHandler
 
-      for (lzy <- lazyFields) { initLazyField(cch, cName, lzy, isStatic = false) }
-      for (field <- strictFields) { initStrictField(cch, cName, field, isStatic = false)}
+      val newLocs = NoLocals.withVars {
+        constrParams.map(_._1).zipWithIndex.toMap.mapValues(_ + 1)
+      }
+
+      val cch = cf.addConstructor(constrParams.map(_._2) : _*).codeHandler
+
+      for (lzy <- lazyFields) { initLazyField(cch, cName, lzy, isStatic = false)(newLocs) }
+      for (field <- strictFields) { initStrictField(cch, cName, field, isStatic = false)(newLocs) }
 
       // Call parent constructor
       cch << ALoad(0)
@@ -1648,6 +1652,16 @@ trait CodeGeneration {
       cf.addInterface(CaseClassClass)
     }
 
+    // Case class parameters
+    val fieldsTypes = ccd.fields.map { vd => (vd.id, typeToJVM(vd.getType)) }
+    val constructorArgs = if (requireMonitor) {
+      (monitorID -> s"L$MonitorClass;") +: fieldsTypes
+    } else fieldsTypes
+
+    val newLocs = NoLocals.withFields(constructorArgs.map {
+      case (id, jvmt) => (id, (cName, id.name, jvmt))
+    }.toMap)
+
     locally { 
       val (fields, methods) = ccd.methods partition { _.canBeField }
       val (strictFields, lazyFields) = fields partition { _.canBeStrictField }
@@ -1666,16 +1680,13 @@ trait CodeGeneration {
       for (field <- strictFields) {
         compileStrictField(field, ccd) 
       }
-      
-      // Case class parameters
-      val namesTypes = ccd.fields.map { vd => (vd.id.name, typeToJVM(vd.getType)) }
   
       // definition of the constructor
       if(!params.doInstrument && !requireMonitor && ccd.fields.isEmpty && !ccd.methods.exists(_.canBeField)) {
         cf.addDefaultConstructor
       } else {
-        for((nme, jvmt) <- namesTypes) {
-          val fh = cf.addField(jvmt, nme)
+        for((id, jvmt) <- constructorArgs) {
+          val fh = cf.addField(jvmt, id.name)
           fh.setFlags((
             FIELD_ACC_PUBLIC |
             FIELD_ACC_FINAL
@@ -1687,38 +1698,34 @@ trait CodeGeneration {
           fh.setFlags(FIELD_ACC_PUBLIC)
         }
   
-        // If we are monitoring function calls, we have an extra argument on the constructor
-        val realArgs = if (requireMonitor) {
-          ("L" + MonitorClass + ";") +: (namesTypes map (_._2))
-        } else namesTypes map (_._2)
-        
-        val cch = cf.addConstructor(realArgs.toList).codeHandler
+        val cch = cf.addConstructor(constructorArgs.map(_._2) : _*).codeHandler
   
         if (params.doInstrument) {
           cch << ALoad(0)
           cch << Ldc(0)
           cch << PutField(cName, instrumentedField, "I")
         }
-  
-        var c = if (requireMonitor) 2 else 1
-        for((nme, jvmt) <- namesTypes) {
+
+        var c = 1
+        for((id, jvmt) <- constructorArgs) {
           cch << ALoad(0)
           cch << (jvmt match {
             case "I" | "Z" => ILoad(c)
             case _ => ALoad(c)
           })
-          cch << PutField(cName, nme, jvmt)
+          cch << PutField(cName, id.name, jvmt)
           c += 1
         }
-        
+
         // Call parent constructor AFTER initializing case class parameters
         if (ccd.parent.isDefined) {
-          // Load this
           cch << ALoad(0)
-          // Load monitor object
-          if (requireMonitor) cch << ALoad(1)
-          val constrSig = if (requireMonitor) "(L" + MonitorClass + ";)V" else "()V"
-          cch << InvokeSpecial(pName.get, constructorName, constrSig)
+          if (requireMonitor) {
+            cch << ALoad(1)
+            cch << InvokeSpecial(pName.get, constructorName, s"(L$MonitorClass;)V")
+          } else {
+            cch << InvokeSpecial(pName.get, constructorName, "()V")
+          }
         } else {
           // Call constructor of java.lang.Object
           cch << ALoad(0)
@@ -1726,8 +1733,8 @@ trait CodeGeneration {
         }
 
         // Now initialize fields
-        for (lzy <- lazyFields) { initLazyField(cch, cName, lzy, isStatic = false)}
-        for (field <- strictFields) { initStrictField(cch, cName , field, isStatic = false)}
+        for (lzy <- lazyFields) { initLazyField(cch, cName, lzy, isStatic = false)(newLocs) }
+        for (field <- strictFields) { initStrictField(cch, cName , field, isStatic = false)(newLocs) }
         cch << RETURN
         cch.freeze
       }
@@ -1777,12 +1784,8 @@ trait CodeGeneration {
         pech << DUP
         pech << Ldc(i)
         pech << ALoad(0)
-        // WARNING: Passing NoLocals(false) is kind of a hack, 
-        // since there is no monitor object anywhere in this method. 
-        // We are saved because it is not used anywhere, 
-        // but beware if you decide to add any mkExpr and the like.
-        instrumentedGetField(pech, cct, f.id)(NoLocals(false))
-        mkBox(f.getType, pech)(NoLocals(false))
+        instrumentedGetField(pech, cct, f.id)(newLocs)
+        mkBox(f.getType, pech)(newLocs)
         pech << AASTORE
       }
 
@@ -1815,14 +1818,10 @@ trait CodeGeneration {
         ech << ALoad(1) << CheckCast(cName) << AStore(castSlot)
 
         for(vd <- ccd.fields) {
-          // WARNING: Passing NoLocals(false) is kind of a hack, 
-          // since there is no monitor object anywhere in this method. 
-          // We are saved because it is not used anywhere, 
-          // but beware if you decide to add any mkExpr and the like.
           ech << ALoad(0)
-          instrumentedGetField(ech, cct, vd.id)(NoLocals(false)) 
+          instrumentedGetField(ech, cct, vd.id)(newLocs)
           ech << ALoad(castSlot)
-          instrumentedGetField(ech, cct, vd.id)(NoLocals(false))
+          instrumentedGetField(ech, cct, vd.id)(newLocs)
 
           typeToJVM(vd.getType) match {
             case "I" | "Z" =>
diff --git a/src/main/scala/leon/codegen/CompilationUnit.scala b/src/main/scala/leon/codegen/CompilationUnit.scala
index a4597b88b7cd5111f12b1bc4d8b97fcda2487a86..49fe6328f0cbc07f102f215f652c8e94aeb4ca52 100644
--- a/src/main/scala/leon/codegen/CompilationUnit.scala
+++ b/src/main/scala/leon/codegen/CompilationUnit.scala
@@ -353,7 +353,7 @@ class CompilationUnit(val ctx: LeonContext,
       args.zipWithIndex.toMap
     }
 
-    mkExpr(e, ch)(Locals(newMapping, Map.empty, Map.empty, isStatic = true))
+    mkExpr(e, ch)(NoLocals.withVars(newMapping))
 
     e.getType match {
       case ValueType() =>
@@ -384,12 +384,12 @@ class CompilationUnit(val ctx: LeonContext,
     for (function <- functions) {
       compileFunDef(function,module)
     }
-    
+
     // Compile lazy fields
     for (lzy <- lazyFields) {
       compileLazyField(lzy, module)
     }
-    
+
     // Compile strict fields
     for (field <- strictFields) {
       compileStrictField(field, module)
@@ -397,9 +397,9 @@ class CompilationUnit(val ctx: LeonContext,
  
     // Constructor
     cf.addDefaultConstructor
-    
+
     val cName = defToJVMName(module)
-    
+
     // Add class initializer method
     locally{ 
       val mh = cf.addMethod("V", "<clinit>")
@@ -407,7 +407,7 @@ class CompilationUnit(val ctx: LeonContext,
         METHOD_ACC_STATIC | 
         METHOD_ACC_PUBLIC
       ).asInstanceOf[U2])
-      
+
       val ch = mh.codeHandler
       /*
        * FIXME :
@@ -416,16 +416,17 @@ class CompilationUnit(val ctx: LeonContext,
        * that will get lost when this method returns, so we can't hope to count 
        * method invocations here :( 
        */
+      val locals = NoLocals.withVar(monitorID -> ch.getFreshVar)
       ch << New(MonitorClass) << DUP
       ch << Ldc(Int.MaxValue) // Allow "infinite" method calls
       ch << InvokeSpecial(MonitorClass, cafebabe.Defaults.constructorName, "(I)V")
-      ch << AStore(ch.getFreshVar) // position 0
-      for (lzy <- lazyFields) { initLazyField(ch, cName, lzy, isStatic = true)}
-      for (field <- strictFields) { initStrictField(ch, cName , field, isStatic = true)}
+      ch << AStore(locals.varToLocal(monitorID).get) // position 0
+      for (lzy <- lazyFields) { initLazyField(ch, cName, lzy, isStatic = true)(locals) }
+      for (field <- strictFields) { initStrictField(ch, cName , field, isStatic = true)(locals) }
       ch  << RETURN
       ch.freeze
     }
-  
+
   }
 
   /** Traverses the program to find all definitions, and stores those in global variables */
diff --git a/src/main/scala/leon/codegen/runtime/ChooseEntryPoint.scala b/src/main/scala/leon/codegen/runtime/ChooseEntryPoint.scala
index 4328a7e92ee0c8978f78f857554b295cae9e9a97..84968a169370ff3c415bf9689f48c86577eed44e 100644
--- a/src/main/scala/leon/codegen/runtime/ChooseEntryPoint.scala
+++ b/src/main/scala/leon/codegen/runtime/ChooseEntryPoint.scala
@@ -31,7 +31,7 @@ object ChooseEntryPoint {
   private val intCounter = new UniqueCounter[Unit]
   intCounter.nextGlobal // Start with 1
 
-  private def getUniqueId(unit: CompilationUnit, p: Problem): ChooseId = {
+  private def getUniqueId(unit: CompilationUnit, p: Problem): ChooseId = synchronized {
     if (!ids.containsKey(unit)) {
       ids.put(unit, new MutableMap())
     }
@@ -45,7 +45,6 @@ object ChooseEntryPoint {
     }
   }
 
-
   def register(p: Problem, unit: CompilationUnit): Int = {
     val cid = getUniqueId(unit, p)
 
diff --git a/src/main/scala/leon/evaluators/RecursiveEvaluator.scala b/src/main/scala/leon/evaluators/RecursiveEvaluator.scala
index 8ca885dbed64a3b51426182fd2e8a97f65f2f421..2091b0e6eed6d28d25d4c7c158eae4dd32586caf 100644
--- a/src/main/scala/leon/evaluators/RecursiveEvaluator.scala
+++ b/src/main/scala/leon/evaluators/RecursiveEvaluator.scala
@@ -715,7 +715,7 @@ abstract class RecursiveEvaluator(ctx: LeonContext, prog: Program, maxSteps: Int
         } else {
           None
         }
-      case (up@UnapplyPattern(ob, _, subs), scrut) =>
+      case (up @ UnapplyPattern(ob, _, subs), scrut) =>
         e(FunctionInvocation(up.unapplyFun, Seq(scrut))) match {
           case CaseClass(CaseClassType(cd, _), Seq()) if cd == program.library.Nil.get =>
             None
diff --git a/src/main/scala/leon/solvers/combinators/PortfolioSolver.scala b/src/main/scala/leon/solvers/combinators/PortfolioSolver.scala
index 429bc24b8d9389cd97782237d4b69cabd562ef64..21580d6c2b2f4f263c3e5451396e2b8a7d067a76 100644
--- a/src/main/scala/leon/solvers/combinators/PortfolioSolver.scala
+++ b/src/main/scala/leon/solvers/combinators/PortfolioSolver.scala
@@ -19,8 +19,6 @@ class PortfolioSolver[S <: Solver with Interruptible](val context: LeonContext,
 
   val name = "Pfolio"
 
-  var constraints = List[Expr]()
-
   protected var model = Model.empty
   protected var resultSolver: Option[Solver] = None
 
@@ -51,6 +49,8 @@ class PortfolioSolver[S <: Solver with Interruptible](val context: LeonContext,
       }
     }
 
+    fs.foreach(_ onFailure { case ex: Throwable => ex.printStackTrace() })
+
     val result = Future.find(fs)(_._2.isDefined)
 
     val res = Await.result(result, Duration.Inf) match {
@@ -63,10 +63,12 @@ class PortfolioSolver[S <: Solver with Interruptible](val context: LeonContext,
         solvers.foreach(_.interrupt())
         r
       case None =>
+        context.reporter.debug("No solver succeeded")
+        fs.foreach(f => println(f.value))
         None
     }
 
-    fs map { Await.ready(_, Duration.Inf) }
+    fs foreach { Await.ready(_, Duration.Inf) }
     res
   }
 
@@ -81,7 +83,6 @@ class PortfolioSolver[S <: Solver with Interruptible](val context: LeonContext,
   def free() = {
     solvers.foreach(_.free)
     model = Model.empty
-    constraints = Nil
   }
 
   def getModel: Model = {
@@ -99,6 +100,5 @@ class PortfolioSolver[S <: Solver with Interruptible](val context: LeonContext,
   def reset() = {
     solvers.foreach(_.reset)
     model = Model.empty
-    constraints = Nil
   }
 }
diff --git a/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala b/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala
index b5cd0a04a3d6d050f7474e01e1a53b16c66119b5..6e75a33a9535f5d7eb714acfedde152be64d03fd 100644
--- a/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala
+++ b/src/main/scala/leon/solvers/combinators/UnrollingSolver.scala
@@ -111,9 +111,13 @@ class UnrollingSolver(val context: LeonContext, val program: Program, underlying
     def extract(b: Expr, m: Matcher[Expr]): Set[Seq[Expr]] = {
       val QuantificationTypeMatcher(fromTypes, _) = m.tpe
       val optEnabler = evaluator.eval(b).result
-      val optArgs = m.args.map(arg => evaluator.eval(Matcher.argValue(arg)).result)
-      if (optEnabler == Some(BooleanLiteral(true)) && optArgs.forall(_.isDefined)) {
-        Set(optArgs.map(_.get))
+      if (optEnabler == Some(BooleanLiteral(true))) {
+        val optArgs = m.args.map(arg => evaluator.eval(Matcher.argValue(arg)).result)
+        if (optArgs.forall(_.isDefined)) {
+          Set(optArgs.map(_.get))
+        } else {
+          Set.empty
+        }
       } else {
         Set.empty
       }
diff --git a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
index 406dcde0a303db2cd981a0d12df8420d049db926..5baa9b9aa22713f1b4e86782570e124d48aac767 100644
--- a/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
+++ b/src/main/scala/leon/solvers/z3/FairZ3Solver.scala
@@ -61,12 +61,29 @@ class FairZ3Solver(val context: LeonContext, val program: Program)
     def extract(b: Z3AST, m: Matcher[Z3AST]): Set[Seq[Expr]] = {
       val QuantificationTypeMatcher(fromTypes, _) = m.tpe
       val optEnabler = model.evalAs[Boolean](b)
-      val optArgs = (m.args zip fromTypes).map {
-        p => softFromZ3Formula(model, model.eval(Matcher.argValue(p._1), true).get, p._2)
-      }
 
-      if (optEnabler == Some(true) && optArgs.forall(_.isDefined)) {
-        Set(optArgs.map(_.get))
+      if (optEnabler == Some(true)) {
+        // FIXME: Dirty hack!
+        // Unfortunately, blockers don't lead to a true decision tree where all
+        // unexecutable branches are false since we have
+        //   b1 ==> ( b2 \/  b3)
+        //   b1 ==> (!b2 \/ !b3)
+        // so b2 /\ b3 is possible when b1 is false. This leads to unsound models
+        // (like Nil.tail) which obviously cannot be part of a domain but can't be
+        // translated back from Z3 either.
+        try {
+          val optArgs = (m.args zip fromTypes).map {
+            p => softFromZ3Formula(model, model.eval(Matcher.argValue(p._1), true).get, p._2)
+          }
+
+          if (optArgs.forall(_.isDefined)) {
+            Set(optArgs.map(_.get))
+          } else {
+            Set.empty
+          }
+        } catch {
+          case _: Throwable => Set.empty
+        }
       } else {
         Set.empty
       }
@@ -406,6 +423,8 @@ class FairZ3Solver(val context: LeonContext, val program: Program)
             solver.pop()  // FIXME: remove when z3 bug is fixed
             timer.stop()
 
+            reporter.debug(" - Finished search without blocked literals")
+
             res2 match {
               case Some(false) =>
                 //reporter.debug("UNSAT WITHOUT Blockers")
diff --git a/src/test/resources/regression/verification/purescala/valid/InductiveQuantification.scala b/src/test/resources/regression/verification/purescala/valid/InductiveQuantification.scala
index 9fe7ea96eb44bba951ff620507bad750c1560056..4883043040fdb90df294aac09b076d16c7628cf4 100644
--- a/src/test/resources/regression/verification/purescala/valid/InductiveQuantification.scala
+++ b/src/test/resources/regression/verification/purescala/valid/InductiveQuantification.scala
@@ -1,7 +1,7 @@
 import leon.lang._
 
 object SizeInc {
-  
+
   abstract class List[A]
   case class Cons[A](head: A, tail: List[A]) extends List[A]
   case class Nil[A]() extends List[A]
diff --git a/src/test/scala/leon/regression/repair/RepairSuite.scala b/src/test/scala/leon/regression/repair/RepairSuite.scala
index 230b9b50c94b51d8818055dbdb6b2396973d11e9..c3aafa50ee12b7739bab2391677c8ff94d2c98f1 100644
--- a/src/test/scala/leon/regression/repair/RepairSuite.scala
+++ b/src/test/scala/leon/regression/repair/RepairSuite.scala
@@ -26,7 +26,8 @@ class RepairSuite extends LeonRegressionSuite {
     val path = file.getAbsoluteFile.toString
     val name = file.getName
 
-    val reporter = new TestSilentReporter
+    //val reporter = new TestSilentReporter
+    val reporter = new DefaultReporter(Set(utils.DebugSectionRepair))
 
     val ctx = LeonContext(
       reporter = reporter,
@@ -40,7 +41,7 @@ class RepairSuite extends LeonRegressionSuite {
     test(name) {
       pipeline.run(ctx)(List(path))
       if(reporter.errorCount > 0) {
-        fail("Errors during repair:\n"+reporter.lastErrors.mkString("\n"))
+        fail("Errors during repair:\n")//+reporter.lastErrors.mkString("\n"))
       }
     }
   }
diff --git a/src/test/scala/leon/regression/termination/TerminationSuite.scala b/src/test/scala/leon/regression/termination/TerminationSuite.scala
index 09ad300b617ad30496047c6d59cf5afa928eecba..5dd5be4b5a1488c82079270b32dc8d6e82ebdab6 100644
--- a/src/test/scala/leon/regression/termination/TerminationSuite.scala
+++ b/src/test/scala/leon/regression/termination/TerminationSuite.scala
@@ -32,7 +32,12 @@ class TerminationSuite extends LeonRegressionSuite {
       fullName
     }
 
-    val t = if (displayName endsWith "verification/purescala/valid/MergeSort.scala") {
+    val ignored = List(
+      "verification/purescala/valid/MergeSort.scala",
+      "verification/purescala/valid/InductiveQuantification.scala"
+    )
+
+    val t = if (ignored.exists(displayName endsWith _)) {
       ignore _
     } else {
       test _