diff --git a/src/main/scala/leon/evaluators/AbstractEvaluator.scala b/src/main/scala/leon/evaluators/AbstractEvaluator.scala
index a5a26e02f6b32073d11c8236fe1ebda54982e726..67d83136a38c1277dab5797b026de67950d5bf4c 100644
--- a/src/main/scala/leon/evaluators/AbstractEvaluator.scala
+++ b/src/main/scala/leon/evaluators/AbstractEvaluator.scala
@@ -155,7 +155,7 @@ class AbstractEvaluator(ctx: LeonContext, prog: Program) extends ContextualEvalu
     def matchesPattern(pat: Pattern, expr: Expr, exprFromScrut: Expr): Option[Map[Identifier, (Expr, Expr)]] = (pat, expr) match {
       case (InstanceOfPattern(ob, pct), e) =>
         if (isSubtypeOf(e.getType, pct)) {
-          Some(obind(ob, e, exprFromScrut))
+          Some(obind(ob, e, AsInstanceOf(exprFromScrut, pct)))
         } else {
           None
         }