diff --git a/src/main/scala/leon/purescala/TypeTreeOps.scala b/src/main/scala/leon/purescala/TypeTreeOps.scala
index 41d9ab08e385bc83f0db4ca6ea9e5d14efe28f1e..75d9e9d8fecac7b8c06a3a92f0d0102a9e8f788d 100644
--- a/src/main/scala/leon/purescala/TypeTreeOps.scala
+++ b/src/main/scala/leon/purescala/TypeTreeOps.scala
@@ -133,6 +133,10 @@ object TypeTreeOps {
           case cc @ CaseClassInstanceOf(ct, e) =>
             CaseClassInstanceOf(tpeSub(ct).asInstanceOf[CaseClassType], srec(e)).copiedFrom(cc)
 
+          case l @ Let(id, value, body) =>
+            val newId = freshId(id, tpeSub(id.getType))
+            Let(newId, srec(value), rec(idsMap + (id -> newId))(body)).copiedFrom(l)
+
           case m @ MatchExpr(e, cases) =>
             val newTpe = tpeSub(e.getType)