diff --git a/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala b/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala
index 411240ecaae0dba2dd89e014acc416d63aa1cf36..f1f682975522f8f3c844ca40b59c4ca369425206 100644
--- a/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala
+++ b/src/main/scala/inox/solvers/combinators/PortfolioSolverFactory.scala
@@ -4,8 +4,6 @@ package inox
 package solvers
 package combinators
 
-import scala.reflect.runtime.universe._
-
 trait PortfolioSolverFactory extends SolverFactory { self =>
 
   final type PT = program.type
@@ -22,8 +20,9 @@ trait PortfolioSolverFactory extends SolverFactory { self =>
     }
   }
 
+  // Assumes s is a P/Solver with the correct subsolver types
   override def reclaim(s: S) = sfs.zip(s.solvers).foreach { case (sf, s) =>
-    sf.reclaim(s)
+    sf.reclaim(s.asInstanceOf[sf.S])
   }
 
   val name = sfs.map(_.name).mkString("Pfolio(", ",", ")")