diff --git a/core/lib/mesos.jar b/core/lib/mesos.jar
index 60d299c8af5464177ae3a0b2c9d2711c33013bda..eb01ce8a15a84c1ed22c204fa6d499041915f09f 100644
Binary files a/core/lib/mesos.jar and b/core/lib/mesos.jar differ
diff --git a/core/src/main/scala/spark/CacheTracker.scala b/core/src/main/scala/spark/CacheTracker.scala
index 8b5c99cf3c1eb3a73806213fe5e9ab66a888402b..7040d4e147434e627e181ecda742697f73b589b6 100644
--- a/core/src/main/scala/spark/CacheTracker.scala
+++ b/core/src/main/scala/spark/CacheTracker.scala
@@ -66,7 +66,7 @@ class CacheTracker(isMaster: Boolean, theCache: Cache) extends Logging {
   
   if (isMaster) {
     val tracker = new CacheTrackerActor
-    tracker.start
+    tracker.start()
     trackerActor = tracker
   } else {
     val host = System.getProperty("spark.master.host")
diff --git a/core/src/main/scala/spark/MapOutputTracker.scala b/core/src/main/scala/spark/MapOutputTracker.scala
index d36fbc77039e6eed5a3d74e1db2b8a62427dff2e..48d11145f2e44b689bf540bb46e9314145c1584a 100644
--- a/core/src/main/scala/spark/MapOutputTracker.scala
+++ b/core/src/main/scala/spark/MapOutputTracker.scala
@@ -34,18 +34,18 @@ extends DaemonActor with Logging {
 
 class MapOutputTracker(isMaster: Boolean) extends Logging {
   var trackerActor: AbstractActor = null
+
+  private val serverUris = new ConcurrentHashMap[Int, Array[String]]
   
   if (isMaster) {
     val tracker = new MapOutputTrackerActor(serverUris)
-    tracker.start
+    tracker.start()
     trackerActor = tracker
   } else {
     val host = System.getProperty("spark.master.host")
     val port = System.getProperty("spark.master.port").toInt
     trackerActor = RemoteActor.select(Node(host, port), 'MapOutputTracker)
   }
-
-  private val serverUris = new ConcurrentHashMap[Int, Array[String]]
   
   def registerMapOutput(shuffleId: Int, numMaps: Int, mapId: Int, serverUri: String) {
     var array = serverUris.get(shuffleId)
@@ -82,6 +82,7 @@ class MapOutputTracker(isMaster: Boolean) extends Logging {
       // We won the race to fetch the output locs; do so
       logInfo("Doing the fetch; tracker actor = " + trackerActor)
       val fetched = (trackerActor !? GetMapOutputLocations(shuffleId)).asInstanceOf[Array[String]]
+      println("Got locations: " + fetched.mkString(", "))
       serverUris.put(shuffleId, fetched)
       fetching.synchronized {
         fetching -= shuffleId
diff --git a/sbt/sbt b/sbt/sbt
index 87395fa28b07cbdfa2ca5f72ed2b5e4eb2375383..7b3780fecb2decbdac934f3c1b07bc54905e3e85 100755
--- a/sbt/sbt
+++ b/sbt/sbt
@@ -1,2 +1,7 @@
 #!/bin/bash
-java -Xmx700M -jar `dirname $0`/sbt-launch-*.jar "$@"
+EXTRA_ARGS=""
+if [ "$MESOS_HOME" != "" ]; then
+  EXTRA_ARGS="-Djava.library.path=$MESOS_HOME/lib/java"
+fi
+export SPARK_HOME=$(cd "$(dirname $0)/.."; pwd)
+java -Xmx700M $EXTRA_ARGS -jar $SPARK_HOME/sbt/sbt-launch-*.jar "$@"