     std::vector<float> dm_list_chunk(full_dm_list.begin() + start,  full_dm_list.begin() + end);
 
     Dedisperser dedisperser(filobj,nthreads);
+
+    if (args.killfilename!=""){
+      if (args.verbose)
+        std::cout << "Using killfile: " << args.killfilename << std::endl;
+      dedisperser.set_killmask(args.killfilename);
+    }
+
+
     dedisperser.set_dm_list(dm_list_chunk);
 
     if (args.verbose){

    if (dm_idx==0)
      if (use_progress_bar){
	printf("Releasing DMs to workers...\n");
	progress->start();
      }
    if (dm_idx >= trials.get_count()){
      retval =  -1;

            args.acc_pulse_width, size, filobj.get_tsamp(),
            filobj.get_cfreq(), filobj.get_foff()); 

  
  if (args.verbose)
    std::cout << "Generating DM list" << std::endl;
  std::vector<float> full_dm_list;

  if (args.dm_file=="none") {
    Dedisperser dedisperser(filobj,nthreads);
    dedisperser.generate_dm_list(args.dm_start,args.dm_end,args.dm_pulse_width,args.dm_tol);
    full_dm_list = dedisperser.get_dm_list();

  }
  else { 
      bool result = getFileContent(args.dm_file, full_dm_list); 
  }

  int ndm_trial_gulp = args.ndm_trial_gulp != -1 ?  args.ndm_trial_gulp : full_dm_list.size();

  for(int idx=0; idx< full_dm_list.size(); idx += ndm_trial_gulp){
