diff --git a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala
index 2671c05e531a2bc965c31eb92a940f68439051b8..fed5e514be34618f41d2e8348eba6d15e67fab29 100644
--- a/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala
+++ b/public/biopet-framework/src/main/scala/nl/lumc/sasc/biopet/extensions/Fastqc.scala
@@ -31,10 +31,10 @@ class Fastqc(val root: Configurable) extends BiopetCommandLineFunction {
   var adapters: Option[File] = None
 
   @Input(doc = "Fastq file", shortName = "FQ")
-  var fastqfile: File = _
+  var fastqfile: File = null
 
   @Output(doc = "Output", shortName = "out")
-  var output: File = _
+  var output: File = null
 
   executable = config("exe", default = "fastqc")
   var java_exe: String = config("exe", default = "java", submodule = "java", freeVar = false)
@@ -50,19 +50,31 @@ class Fastqc(val root: Configurable) extends BiopetCommandLineFunction {
 
   override def afterGraph {
     this.checkExecutable
+
+    val fastqcDir = executable.substring(0, executable.lastIndexOf("/"))
+
     contaminants = contaminants match {
+      // user-defined contaminants file take precedence
+      case userDefinedValue @ Some(_) => userDefinedValue
+      // otherwise, use default contaminants file (depending on FastQC version)
       case None =>
-        val fastqcDir = executable.substring(0, executable.lastIndexOf("/"))
         val defaultContams = getVersion match {
-          case "v0.11.2" => Option(new File(fastqcDir + "/Configuration/contaminant_list.txt"))
-          case _         => Option(new File(fastqcDir + "/Contaminants/contaminant_list.txt"))
+          case "v0.11.2" => new File(fastqcDir + "/Configuration/contaminant_list.txt")
+          case _         => new File(fastqcDir + "/Contaminants/contaminant_list.txt")
         }
+        config("contaminants", default = defaultContams)
+    }
+
+    adapters = adapters match {
+      // user-defined contaminants file take precedence
+      case userDefinedValue @ Some(_) => userDefinedValue
+      // otherwise, check if adapters are already present (depending on FastQC version)
+      case None =>
         val defaultAdapters = getVersion match {
           case "v0.11.2" => Option(new File(fastqcDir + "/Configuration/adapter_list.txt"))
           case _         => None
         }
-        config("contaminants", default = defaultContams)
-      case wrapped @ Some(_) => wrapped
+        defaultAdapters.collect { case adp => config("adapters", default = adp) }
     }
   }