diff --git a/CHANGELOG.md b/CHANGELOG.md
index 55fb1e8ab8385737b340dd91c7cb925a6abb6089..255c21867f7544356607deeb5f6bd1540c4dba70 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ that users understand how the changes affect the new version.
 
 version 4.0.0-develop
 ---------------------------
++ Picard MergeVcf now uses compression level 1 by default.
 + bwa mem, bwa mem+kit and hisat2 have their samtools sort threads tweaked. The
   number of threads is now related to the number of threads on the aligner.
   Using more threads reduces the chance of the samtools sort pipe getting 
diff --git a/cutadapt.wdl b/cutadapt.wdl
index d125af43b3039fd2ba9aa2b63b0819d4676fbf41..7faeaff1e69891a9ff296d820f6222e49863de0a 100644
--- a/cutadapt.wdl
+++ b/cutadapt.wdl
@@ -81,7 +81,7 @@ task Cutadapt {
         Int cores = 4
         String memory = "~{300 + 100 * cores}M"
         Int timeMinutes = 1 + ceil(size([read1, read2], "G")  * 12.0 / cores)
-        String dockerImage = "quay.io/biocontainers/cutadapt:2.10--py37h516909a_0"
+        String dockerImage = "quay.io/biocontainers/cutadapt:2.10--py37hf01694f_1"
     }
 
     String realRead2output = select_first([read2output, "cut_r2.fq.gz"])
diff --git a/picard.wdl b/picard.wdl
index adb55b4b52d2dce2bc3ae45a67a02b479dd9c181..1afa5ea7272155e09064c07725e729121061bf83 100644
--- a/picard.wdl
+++ b/picard.wdl
@@ -553,8 +553,14 @@ task MergeVCFs {
 
         String memory = "5G"
         String javaXmx = "4G"
-        Int timeMinutes = 1 + ceil(size(inputVCFs, "G"))
+        Int timeMinutes = 1 + ceil(size(inputVCFs, "G")) * 2
         String dockerImage = "quay.io/biocontainers/picard:2.23.2--0"
+        Int compressionLevel = 1
+        Boolean useJdkInflater = true  # Slightly faster than the intel one. 
+        # Better results for compression level 1 (much smaller). Higher compression levels similar to intel deflater.
+        # NOTE: this might change in the future when the intel deflater is updated!
+        Boolean useJdkDeflater = true
+
     }
 
     # Using MergeVcfs instead of GatherVcfs so we can create indices
@@ -566,7 +572,10 @@ task MergeVCFs {
         picard -Xmx~{javaXmx} -XX:ParallelGCThreads=1 \
         MergeVcfs \
         INPUT=~{sep=' INPUT=' inputVCFs} \
-        OUTPUT=~{outputVcfPath}
+        OUTPUT=~{outputVcfPath} \
+        COMPRESSION_LEVEL=~{compressionLevel} \
+        USE_JDK_INFLATER=~{true="true" false="false" useJdkInflater} \
+        USE_JDK_DEFLATER=~{true="true" false="false" useJdkDeflater}   
     }
 
     output {
@@ -592,6 +601,9 @@ task MergeVCFs {
         timeMinutes: {description: "The maximum amount of time the job will run in minutes.", category: "advanced"}
         dockerImage: {description: "The docker image used for this task. Changing this may result in errors which the developers may choose not to address.",
                       category: "advanced"}
+        useJdkInflater: {description: "True, uses the java inflater. False, uses the optimized intel inflater.", category: "advanced"}
+        useJdkDeflater: {description: "True, uses the java deflator to compress the BAM files. False uses the optimized intel deflater.", category: "advanced"}
+        compressionLevel: {description: "The compression level at which the BAM files are written", category: "advanced"}
     }
 }