diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala
index 2d2dc052ff3f2461cdb838b0d5662518e805939c..afd9a118bb8b4b651c47999d25421c82bc73c3a3 100644
--- a/project/SparkBuild.scala
+++ b/project/SparkBuild.scala
@@ -108,7 +108,7 @@ object SparkBuild extends Build {
       "colt" % "colt" % "1.2.0",
       "org.apache.mesos" % "mesos" % "0.9.0-incubating"
     )
-  ) ++ assemblySettings ++ Seq(test in assembly := {})
+  ) ++ assemblySettings ++ extraAssemblySettings ++ Seq(test in assembly := {})
 
   def rootSettings = sharedSettings ++ Seq(
     publish := {}
@@ -117,11 +117,19 @@ object SparkBuild extends Build {
   def replSettings = sharedSettings ++ Seq(
     name := "spark-repl",
     libraryDependencies <+= scalaVersion("org.scala-lang" % "scala-compiler" % _)
-  ) ++ assemblySettings ++ Seq(test in assembly := {})
+  )
 
   def examplesSettings = sharedSettings ++ Seq(
     name := "spark-examples"
   )
 
   def bagelSettings = sharedSettings ++ Seq(name := "spark-bagel")
+
+  def extraAssemblySettings() = Seq(test in assembly := {}) ++ Seq(
+    mergeStrategy in assembly := {
+      case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard
+      case "reference.conf" => MergeStrategy.concat
+      case _ => MergeStrategy.first
+    }
+  )
 }