diff --git a/src/main/scala/leon/synthesis/rules/IntroduceRecCalls.scala b/src/main/scala/leon/synthesis/rules/IntroduceRecCalls.scala
index 5103ad0c63a6ef01bb5762c945c93d9d9cecec41..aca95e883edbdbbd9f24f5ffc2ec8a0cfb4897b9 100644
--- a/src/main/scala/leon/synthesis/rules/IntroduceRecCalls.scala
+++ b/src/main/scala/leon/synthesis/rules/IntroduceRecCalls.scala
@@ -29,7 +29,7 @@ case object IntroduceRecCalls extends NormalizingRule("Introduce rec. calls") {
     val existingCalls = pcs.collect { case Equals(_, fi: FunctionInvocation) => fi }.toSet
 
     val calls = terminatingCalls(hctx.program, p.ws, p.pc, None, false)
-      .map(_._1).filterNot(existingCalls)
+      .map(_._1).distinct.filterNot(existingCalls)
 
     if (calls.isEmpty) return Nil