diff --git a/src/main/scala/leon/solvers/z3/AbstractZ3Solver.scala b/src/main/scala/leon/solvers/z3/AbstractZ3Solver.scala
index 9907f03945440723d8a2829992197a1ae0406d46..1036643df0bc92de9772597af9d26f156c0ebb97 100644
--- a/src/main/scala/leon/solvers/z3/AbstractZ3Solver.scala
+++ b/src/main/scala/leon/solvers/z3/AbstractZ3Solver.scala
@@ -160,7 +160,7 @@ trait AbstractZ3Solver extends Solver {
     val defs = for ((_, DataType(sym, cases)) <- adts) yield {(
       sym.uniqueName,
       cases.map(c => c.sym.uniqueName),
-      cases.map(c => c.fields.map{ case(id, tpe) => (id.uniqueName, typeToSortRef(tpe))})
+      cases.map(c => c.fields.map { case(id, tpe) => (id.uniqueName, typeToSortRef(tpe))})
     )}
 
     val resultingZ3Info = z3.mkADTSorts(defs)
diff --git a/src/main/scala/leon/termination/StructuralSize.scala b/src/main/scala/leon/termination/StructuralSize.scala
index f7554e7aaeb7e45a640df5265b268c79b2d39be1..6d6bf68945cc72759f6d07f87fdee29b3e38a725 100644
--- a/src/main/scala/leon/termination/StructuralSize.scala
+++ b/src/main/scala/leon/termination/StructuralSize.scala
@@ -205,20 +205,21 @@ trait StructuralSize {
         case ct: ClassType =>
           val root = ct.root
           val fd = outerCache.getOrElse(root.classDef.typed, {
-            val id = FreshIdentifier("x", root.classDef.typed, true)
+            val tcd = root.classDef.typed
+            val id = FreshIdentifier("x", tcd, true)
             val fd = new FunDef(FreshIdentifier("outerSize", alwaysShowUniqueID = true),
               root.classDef.tparams,
               Seq(ValDef(id)),
               IntegerType)
-            outerCache(root.classDef.typed) = fd
+            outerCache(tcd) = fd
 
-            fd.body = Some(MatchExpr(Variable(id), root.knownCCDescendants map { cct =>
+            fd.body = Some(MatchExpr(Variable(id), tcd.knownCCDescendants map { cct =>
               val args = cct.fields.map(_.id.freshen)
               purescala.Extractors.SimpleCase(
                 CaseClassPattern(None, cct, args.map(id => WildcardPattern(Some(id)))),
                 args.foldLeft[Expr](InfiniteIntegerLiteral(1)) { case (e, id) =>
                   plus(e, id.getType match {
-                    case ct: ClassType if dependencies(root)(ct.root) => outerSize(Variable(id))
+                    case ct: ClassType if dependencies(tcd)(ct.root) => outerSize(Variable(id))
                     case _ => InfiniteIntegerLiteral(0)
                   })
                 })
@@ -229,7 +230,7 @@ trait StructuralSize {
             fd
           })
 
-          FunctionInvocation(fd.typed(ct.tps), Seq(e))
+          FunctionInvocation(fd.typed(root.tps), Seq(e))
 
         case _ => InfiniteIntegerLiteral(0)
       })
diff --git a/src/test/scala/leon/regression/termination/TerminationSuite.scala b/src/test/scala/leon/regression/termination/TerminationSuite.scala
index 876ad77bde182b5fd380300a69b3963929eaee31..5aa1d7891a2dbee9b5b30c4b8211f02d81bf1cdb 100644
--- a/src/test/scala/leon/regression/termination/TerminationSuite.scala
+++ b/src/test/scala/leon/regression/termination/TerminationSuite.scala
@@ -68,7 +68,7 @@ class TerminationSuite extends LeonRegressionSuite {
 
   private def forEachFileIn(files: Iterable[File], forError: Boolean = false)(block : Output=>Unit) {
     for(f <- files) {
-      mkTest(f, Seq("--solvers=smt-z3"), forError)(block)
+      mkTest(f, Seq(), forError)(block)
     }
   }