diff --git a/src/main/scala/leon/utils/InliningPhase.scala b/src/main/scala/leon/utils/InliningPhase.scala
index cc2862c76c78415aab7efa3b3a841a2baefaa211..8053a8dc1e9956c9ef264c247d41f8d96ffbb934 100644
--- a/src/main/scala/leon/utils/InliningPhase.scala
+++ b/src/main/scala/leon/utils/InliningPhase.scala
@@ -38,13 +38,13 @@ object InliningPhase extends TransformationPhase {
     }
 
     for (fd <- p.definedFunctions) {
-      fd.fullBody = simplify(preMap {
+      fd.fullBody = simplify(preMap ({
         case FunctionInvocation(TypedFunDef(fd, tps), args) if doInline(fd) =>
           val newBody = instantiateType(fd.fullBody, (fd.tparams zip tps).toMap, Map())
           Some(replaceFromIDs(fd.params.map(_.id).zip(args).toMap, newBody))
         case _ =>
           None
-      }(fd.fullBody))
+      }, applyRec = true)(fd.fullBody))
     }
 
     filterFunDefs(p, fd => !doInline(fd))