diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala
index 6b52c81a69abace11ea84af0c7e9a8655a2c4565..98d9778b8c3411d574469bf807518b40179030a1 100644
--- a/src/main/scala/leon/Main.scala
+++ b/src/main/scala/leon/Main.scala
@@ -117,9 +117,6 @@ object Main {
     LeonContext(settings = settings, reporter = reporter, files = files, options = leonOptions)
   }
 
-  // not sure we actually want this, but it is sexy
-  implicit def unitToNoopPhase[T](u: Unit): NoopPhase[T] = NoopPhase[T]()
-
   def computePipeline(settings: Settings): Pipeline[List[String], Any] = {
     import purescala.Definitions.Program
 
@@ -131,16 +128,22 @@ object Main {
         EpsilonElimination andThen
         ImperativeCodeElimination andThen
         FunctionClosure
+      } else {
+        NoopPhase()
       }
 
     val pipeSynthesis: Pipeline[Program, Program]=
       if (settings.synthesis) {
         synthesis.SynthesisPhase
+      } else {
+        NoopPhase()
       }
 
     val pipeVerify: Pipeline[Program, Any] =
       if (settings.verify) {
         verification.AnalysisPhase
+      } else {
+        NoopPhase()
       }
 
     pipeBegin andThen