diff --git a/src/main/scala/leon/Reporter.scala b/src/main/scala/leon/Reporter.scala
index a8373bdd226ebbab45fb0340c5bc1ffeb6fcd027..ddd6eb9955b7cb637b196240c01cfb90fd9fb0a9 100644
--- a/src/main/scala/leon/Reporter.scala
+++ b/src/main/scala/leon/Reporter.scala
@@ -43,6 +43,8 @@ abstract class Reporter(settings: Settings) {
     throw LeonFatalError(None)
   }
 
+  def onCompilerProgress(current: Int, total: Int) = {}
+
   final def info(pos: Position, msg: Any): Unit    = emit(account(Message(INFO, pos, msg)))
   final def warning(pos: Position, msg: Any): Unit = emit(account(Message(WARNING, pos, msg)))
   final def error(pos: Position, msg: Any): Unit   = emit(account(Message(ERROR, pos, msg)))
diff --git a/src/main/scala/leon/frontends/scalac/ScalaCompiler.scala b/src/main/scala/leon/frontends/scalac/ScalaCompiler.scala
index 55afa914fb1fd662051fef96d178063a29b3480f..df5fd14d3493a77c3d891cd724f86076c044c70d 100644
--- a/src/main/scala/leon/frontends/scalac/ScalaCompiler.scala
+++ b/src/main/scala/leon/frontends/scalac/ScalaCompiler.scala
@@ -30,4 +30,10 @@ class ScalaCompiler(settings : NSCSettings, ctx: LeonContext) extends Global(set
     )
     phs foreach { phasesSet += _._1 }
   }
+
+  class Run extends super.Run {
+    override def progress(current: Int, total: Int) {
+      ctx.reporter.onCompilerProgress(current, total)
+    }
+  }
 }