diff --git a/build.sbt b/build.sbt
index b7507c6ec71011ccb645a7772ff31017e52aafc8..121a1311a55c452093541116e74a593be8094999 100644
--- a/build.sbt
+++ b/build.sbt
@@ -87,9 +87,10 @@ script := {
 sourceGenerators in Compile <+= Def.task {
   val libFiles = ((baseDirectory.value / "library") ** "*.scala").getPaths
   val build = (sourceManaged in Compile).value / "leon" / "Build.scala";
-  IO.write(build, s"""|package leon;
+  IO.write(build, s"""|package leon
                       |
                       |object Build {
+                      |  val baseDirectory = \"${baseDirectory.value.toString}\"
                       |  val libFiles = List(
                       |    ${libFiles.mkString("\"\"\"", "\"\"\",\n    \"\"\"", "\"\"\"")}
                       |  )
diff --git a/src/test/scala/leon/regression/testcases/TestCasesCompile.scala b/src/test/scala/leon/regression/testcases/TestCasesCompile.scala
index 97f6ae603eece13d8c42fac4f25b33a632b7f709..64367b70d408c5cc36684ea4bc68879db5101fb0 100644
--- a/src/test/scala/leon/regression/testcases/TestCasesCompile.scala
+++ b/src/test/scala/leon/regression/testcases/TestCasesCompile.scala
@@ -19,8 +19,6 @@ class TestCasesCompile extends LeonRegressionSuite {
 
   val baseDir = "regression/testcases/"
 
-  val slashes = resourceDir(baseDir).getAbsolutePath.split("/").toList.size
-
   val allTests = (filesIn(baseDir+"repair/") ++
                  filesIn(baseDir+"runtime/") ++
                  filesIn(baseDir+"synthesis/") ++
@@ -28,7 +26,11 @@ class TestCasesCompile extends LeonRegressionSuite {
                  filesIn(baseDir+"web/")).sortBy(_.getAbsolutePath)
 
   allTests.foreach { f =>
-    val name = f.getAbsolutePath.split("/").toList.drop(slashes).mkString("/")
+
+    val path = f.getAbsolutePath
+
+    val index = path.indexOf(baseDir)
+    val name = path.drop(index)
 
     test("Compiling "+name) {
 
diff --git a/src/test/scala/leon/test/LeonRegressionSuite.scala b/src/test/scala/leon/test/LeonRegressionSuite.scala
index 78c56589b66b87fe288d4a1fceabeaaee12b7ec1..07ca12b58a07d8215a9b1eb29ecf411a80745a7e 100644
--- a/src/test/scala/leon/test/LeonRegressionSuite.scala
+++ b/src/test/scala/leon/test/LeonRegressionSuite.scala
@@ -5,7 +5,6 @@ package leon.test
 import leon._
 import leon.utils._
 
-import scala.io.Source
 import org.scalatest._
 import org.scalatest.time.Span
 import org.scalatest.concurrent._
@@ -15,8 +14,8 @@ import org.scalatest.exceptions.TestFailedException
 import java.io.File
 
 trait LeonRegressionSuite extends FunSuite with Timeouts with BeforeAndAfterEach {
-  // Hard-code resource directory, for Eclipse purposes
-  val resourceDirHard = "src/test/resources/"
+
+  val regressionTestDirectory = "src/test/resources"
 
   def createLeonContext(opts: String*): LeonContext = {
     val reporter = new TestSilentReporter
@@ -66,23 +65,6 @@ trait LeonRegressionSuite extends FunSuite with Timeouts with BeforeAndAfterEach
   }
 
   protected val all : String=>Boolean = (s : String) => true
-
-
-  def resourceDir(dir : String) : File = {
-
-    val d = this.getClass.getClassLoader.getResource(dir)
-
-    if(d == null || d.getProtocol != "file") {
-      // We are in Eclipse. The only way we are saved is by hard-coding the path
-      new File(resourceDirHard + dir)
-    }
-    else {
-      new File(d.toURI)
-    }
-  }
-
-
-  
   
   def scanFilesIn(f: File, filter: String=>Boolean = all, recursive: Boolean = false): Iterable[File] = {
     Option(f.listFiles()).getOrElse(Array()).flatMap{f =>
@@ -96,13 +78,8 @@ trait LeonRegressionSuite extends FunSuite with Timeouts with BeforeAndAfterEach
 
   def filesInResourceDir(dir : String, filter : String=>Boolean = all, recursive: Boolean = false) : Iterable[File] = {
 
-    val d = this.getClass.getClassLoader.getResource(dir)
-
-    val asFile = if(d == null || d.getProtocol != "file") {
-      // We are in Eclipse. The only way we are saved is by hard-coding the path
-      new File(resourceDirHard + dir)
-    } else new File(d.toURI)
+    val baseDir = new File(s"${Build.baseDirectory}/$regressionTestDirectory/$dir")
 
-    scanFilesIn(asFile, filter, recursive)
+    scanFilesIn(baseDir, filter, recursive)
   }
 }