diff --git a/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala b/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala
index f7fe320910bef857d1f6e184a7d037ce4b64b73b..8774bdc985be4e03c6e09cec23d4070373c79866 100644
--- a/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala
+++ b/public/toucan/src/main/scala/nl/lumc/sasc/biopet/pipelines/toucan/Toucan.scala
@@ -56,17 +56,36 @@ class Toucan(val root: Configurable) extends QScript with BiopetQScript with Sum
     normalizer.outputVcf = swapExt(outputDir, vep.output, ".vcf", ".normalized.vcf.gz")
     add(normalizer)
 
+    // Optional annotation steps, depend is some files existing in the config
     val gonlVcfFile: Option[File] = config("gonl_vcf")
+    val exacVcfFile: Option[File] = config("exac_vcf")
+
+    var outputFile = normalizer.outputVcf
+
     gonlVcfFile match {
       case Some(gonlVcfFile) => {
         val vcfWithVcf = new VcfWithVcf(this)
-        vcfWithVcf.input = normalizer.outputVcf
+        vcfWithVcf.input = outputFile
         vcfWithVcf.secondaryVcf = gonlVcfFile
         vcfWithVcf.output = swapExt(outputDir, normalizer.outputVcf, ".vcf.gz", ".gonl.vcf.gz")
         vcfWithVcf.fields ::= ("AF", "AF_gonl", None)
         add(vcfWithVcf)
+        outputFile = vcfWithVcf.output
+      }
+      case _ =>
+    }
+
+    exacVcfFile match {
+      case Some(exacVcfFile) => {
+        val vcfWithVcf = new VcfWithVcf(this)
+        vcfWithVcf.input = outputFile
+        vcfWithVcf.secondaryVcf = exacVcfFile
+        vcfWithVcf.output = swapExt(outputDir, outputFile, ".vcf.gz", ".exac.vcf.gz")
+        vcfWithVcf.fields ::= ("MAF", "MAF_exac", None)
+        add(vcfWithVcf)
+        outputFile = vcfWithVcf.output
       }
-      case _ => normalizer.outputVcf
+      case _ =>
     }
   }