diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala
index 5ba9bfa5357d69d3715b7e24276d3b90700cd151..8be3134c793355df9d6c3ab0d7213b4345e298a7 100644
--- a/src/main/scala/leon/Main.scala
+++ b/src/main/scala/leon/Main.scala
@@ -17,7 +17,7 @@ object Main {
       xlang.ImperativeCodeElimination,
       xlang.FixReportLabels,
       xlang.XLangDesugaringPhase,
-      purescala.FunctionClosure,
+      new purescala.FunctionClosure,
       synthesis.SynthesisPhase,
       termination.TerminationPhase,
       verification.AnalysisPhase,
@@ -190,12 +190,12 @@ object Main {
         else if (synthesisF) SynthesisPhase
         else if (repairF) RepairPhase
         else if (analysisF) Pipeline.both(
-          FunctionClosure andThen analysis,
+          (new FunctionClosure) andThen analysis,
           TerminationPhase
         )
         else if (terminationF) TerminationPhase
         else if (evalF) EvaluationPhase
-        else FunctionClosure andThen analysis
+        else (new FunctionClosure) andThen analysis
       }
 
       pipeBegin andThen
diff --git a/src/main/scala/leon/purescala/FunctionClosure.scala b/src/main/scala/leon/purescala/FunctionClosure.scala
index 96ef8e2b05568dc9c19e5c5874351452d24d2689..4ac11044d1898de0bcfe9309d132745be47d168e 100644
--- a/src/main/scala/leon/purescala/FunctionClosure.scala
+++ b/src/main/scala/leon/purescala/FunctionClosure.scala
@@ -10,7 +10,7 @@ import Extractors._
 import ExprOps._
 import Constructors._
 
-object FunctionClosure extends TransformationPhase {
+class FunctionClosure extends TransformationPhase {
 
   val name = "Function Closure"
   val description = "Closing function with its scoping variables"
@@ -175,5 +175,4 @@ object FunctionClosure extends TransformationPhase {
     } while(newVars != Set())
     (filteredConstraints, allVars)
   }
-
 }
diff --git a/src/main/scala/leon/xlang/XLangDesugaringPhase.scala b/src/main/scala/leon/xlang/XLangDesugaringPhase.scala
index f891b212e7c5c2b87c9646df3b1509755f464f39..6b06991c7aefb20cc7585a1c58a51f40df6bddaa 100644
--- a/src/main/scala/leon/xlang/XLangDesugaringPhase.scala
+++ b/src/main/scala/leon/xlang/XLangDesugaringPhase.scala
@@ -16,7 +16,7 @@ object XLangDesugaringPhase extends TransformationPhase {
       ArrayTransformation andThen
       EpsilonElimination andThen
       ImperativeCodeElimination andThen
-      FunctionClosure
+      (new FunctionClosure)
     phases.run(ctx)(pgm)
   }
 
diff --git a/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala b/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala
index 99f8bcfa8b093518220a8444dd259245f443edca..9cd16293f9bf6d95b57290bec6f94a412629be96 100644
--- a/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala
+++ b/src/test/scala/leon/regression/synthesis/StablePrintingSuite.scala
@@ -33,7 +33,7 @@ class StablePrintingSuite extends LeonRegressionSuite {
       val pipeline = leon.utils.TemporaryInputPhase andThen 
                      frontends.scalac.ExtractionPhase andThen
                      leon.utils.PreprocessingPhase andThen
-                     purescala.FunctionClosure
+                     (new purescala.FunctionClosure)
 
       val program = pipeline.run(ctx)((List(content), Nil))