diff --git a/core/src/main/scala/spark/Executor.scala b/core/src/main/scala/spark/Executor.scala
index 78de41713d1ee219f0df894571cb4de768673ec3..b27a1ebd72fbe91864181f5c7a4d5f1a794e331a 100644
--- a/core/src/main/scala/spark/Executor.scala
+++ b/core/src/main/scala/spark/Executor.scala
@@ -33,7 +33,7 @@ class Executor extends mesos.Executor with Logging {
     classLoader = createClassLoader()
     Thread.currentThread.setContextClassLoader(classLoader)
     
-    // Start worker thread pool (they will inherit our context ClassLoader)
+    // Start worker thread pool
     threadPool = new ThreadPoolExecutor(
       1, 128, 600, TimeUnit.SECONDS, new LinkedBlockingQueue[Runnable])
   }
@@ -52,6 +52,7 @@ class Executor extends mesos.Executor with Logging {
       logInfo("Running task ID " + taskId)
       try {
         SparkEnv.set(env)
+        Thread.currentThread.setContextClassLoader(classLoader)
         Accumulators.clear
         val task = Utils.deserialize[Task[Any]](arg, classLoader)
         for (gen <- task.generation) // Update generation if any is set