diff --git a/public/biopet-extentsions/src/main/scala/nl/lumc/sasc/biopet/extensions/samtools/SamtoolsSort.scala b/public/biopet-extentsions/src/main/scala/nl/lumc/sasc/biopet/extensions/samtools/SamtoolsSort.scala
index d2f723f9e789a0490bb110ce1e89cbd1aa2f6054..fee7906d24c0f9e7a4a6d07006928dea3026d944 100644
--- a/public/biopet-extentsions/src/main/scala/nl/lumc/sasc/biopet/extensions/samtools/SamtoolsSort.scala
+++ b/public/biopet-extentsions/src/main/scala/nl/lumc/sasc/biopet/extensions/samtools/SamtoolsSort.scala
@@ -16,9 +16,9 @@ class SamtoolsSort(val root: Configurable) extends Samtools {
   @Output
   var output: File = _
 
-  val compresion: Option[Int] = config("l")
-  val outputFormat: Option[String] = config("O")
-  val sortByName: Boolean = config("sort_by_name", default = false)
+  var compresion: Option[Int] = config("l")
+  var outputFormat: Option[String] = config("O")
+  var sortByName: Boolean = config("sort_by_name", default = false)
   val prefix: String = config("prefix", default = new File(qSettings.tempDirectory, output.getAbsolutePath))
 
   def cmdLine = optional("-m", (coreMemeory + "G")) +
diff --git a/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala b/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala
index 9d508b12ce727acb0bdfdf52fc485b8e353e5dae..24ec2a2bb7a7aded19350951cf8aa67308d4418e 100644
--- a/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala
+++ b/public/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/Mapping.scala
@@ -19,6 +19,7 @@ import java.io.File
 import java.util.Date
 
 import nl.lumc.sasc.biopet.core._
+import nl.lumc.sasc.biopet.extensions.samtools.SamtoolsSort
 import nl.lumc.sasc.biopet.utils.config.Configurable
 import nl.lumc.sasc.biopet.core.summary.SummaryQScript
 import nl.lumc.sasc.biopet.extensions.bwa.{ BwaAln, BwaMem, BwaSampe, BwaSamse }
@@ -331,11 +332,18 @@ class Mapping(val root: Configurable) extends QScript with SummaryQScript with S
     bwaCommand.R = Some(getReadGroupBwa)
     bwaCommand.output = swapExt(output.getParent, output, ".bam", ".sam")
     bwaCommand.isIntermediate = true
-    add(bwaCommand)
-    val sortSam = SortSam(this, bwaCommand.output, output)
-    if (chunking || !skipMarkduplicates) sortSam.isIntermediate = true
-    add(sortSam)
-    sortSam.output
+    if (config("use_pipes", default = true).asBoolean) {
+      val samtoolsSort = new SamtoolsSort(this)
+      samtoolsSort.outputFormat = Some("bam")
+      samtoolsSort.output = output
+      add(bwaCommand | samtoolsSort)
+    } else {
+      add(bwaCommand)
+      val sortSam = SortSam(this, bwaCommand.output, output)
+      if (chunking || !skipMarkduplicates) sortSam.isIntermediate = true
+      add(sortSam)
+    }
+    output
   }
 
   def addGsnap(R1: File, R2: Option[File], output: File, deps: List[File]): File = {