diff --git a/src/files/fastafile.h b/src/files/fastafile.h
index 59213a2f5b7a3e23960bfd6ba568d5c9256bda87..c398d3bdbcf0f16eb087bd19a29514688c00eb75 100644
--- a/src/files/fastafile.h
+++ b/src/files/fastafile.h
@@ -62,4 +62,6 @@ private :
 };
 
 Q_DECLARE_METATYPE(FastaFile *)
+Q_DECLARE_METATYPE(FastaFileSp)
+
 #endif // FASTAFILE_H
diff --git a/src/gui/widgets/contaminant_widget/contaminantwidget.cpp b/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
index ee3275cc59758e7cf4a1b5eb79bb429b27f32b1b..e316b142b3763fef42eca15a5ff7e7b44bf756f7 100644
--- a/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
+++ b/src/gui/widgets/contaminant_widget/contaminantwidget.cpp
@@ -47,7 +47,7 @@ ContaminantWidget::ContaminantWidget(QWidget * parent):
     ui->contaminant_database_listview->setModel(_p_fasta_str_li);
     QItemSelectionModel * selection_model = ui->contaminant_database_listview->selectionModel();
     ui->contaminant_database_listview->setSelectionMode(QAbstractItemView::MultiSelection);
-    
+
     doSelectContaminantSource();
     qDebug() << "ContaminantWidget::ContaminantWidget end";
 }
@@ -68,14 +68,13 @@ void ContaminantWidget::setRegexpContaminantPattern(const QString & pattern) {
 
 void ContaminantWidget::setFastaFileList(std::vector<FastaFileSp> fasta_file_list) {
 
-    _fasta_file_list = fasta_file_list;
     _p_fasta_str_li->removeRows(0, _p_fasta_str_li->rowCount());
     for (FastaFileSp fasta_file : fasta_file_list ) {
 
         QStandardItem *item;
         item = new QStandardItem(QString("%1").arg(fasta_file.get()->getFilename()));
         item->setEditable(false);
-        item->setData(QVariant::fromValue(fasta_file.get()), Qt::UserRole);
+        item->setData(QVariant::fromValue(fasta_file), Qt::UserRole);
         _p_fasta_str_li->appendRow(item);
         //item->setData(QVariant(QString("%1").arg(fasta_file.get()->getAbsoluteFilePath())),Qt::UserRole);
     }
@@ -106,9 +105,9 @@ void ContaminantWidget::setProjectContaminants(Project * p_project) {
         p_project->getProteinStore().clearContaminants();
         if (index_list.size() > 0) {
             for (QModelIndex index :index_list) {
-                if (index.data(Qt::UserRole).canConvert<FastaFile *>()) {
-                    FastaFile * p_fasta_file = index.data(Qt::UserRole).value<FastaFile *>();
-                    p_fasta_file->setContaminants(p_project->getProteinStore());
+                if (index.data(Qt::UserRole).canConvert<FastaFileSp>()) {
+                    FastaFileSp p_fasta_file = index.data(Qt::UserRole).value<FastaFileSp>();
+                    p_fasta_file.get()->setContaminants(p_project->getProteinStore());
                 }
                 else {
                     throw pappso::PappsoException(QObject::tr("can not convert to FastaFile index.data().canConvert<FastaFile *>()"));
@@ -153,13 +152,22 @@ void ContaminantWidget::doSelectFastaFile() {
         if (filenames.size() > 0) {
             settings.setValue("path/fastafiles_directory", QFileInfo(filenames[0]).absolutePath());
         }
-        
+
         std::vector<FastaFileSp> fasta_file_list;
         for (QString filename :filenames) {
             fasta_file_list.push_back(std::make_shared<FastaFile>(filename));
         }
-        
-        this->setFastaFileList(fasta_file_list);
+
+
+        for (FastaFileSp fasta_file : fasta_file_list ) {
+
+            QStandardItem *item;
+            item = new QStandardItem(QString("%1").arg(fasta_file.get()->getFilename()));
+            item->setEditable(false);
+            item->setData(QVariant::fromValue(fasta_file), Qt::UserRole);
+            _p_fasta_str_li->appendRow(item);
+            //item->setData(QVariant(QString("%1").arg(fasta_file.get()->getAbsoluteFilePath())),Qt::UserRole);
+        }
 
     }
     catch (pappso::PappsoException & error) {
diff --git a/src/gui/widgets/contaminant_widget/contaminantwidget.h b/src/gui/widgets/contaminant_widget/contaminantwidget.h
index 5ed5d73a38f1195a544d36b219ec58074425c40f..f0b0081ca279306adab2b403bc7df24dc6e0590d 100644
--- a/src/gui/widgets/contaminant_widget/contaminantwidget.h
+++ b/src/gui/widgets/contaminant_widget/contaminantwidget.h
@@ -70,8 +70,6 @@ private:
     bool _no_project = true;
     
     QStandardItemModel * _p_fasta_str_li;
-    
-    std::vector<FastaFileSp> _fasta_file_list;
 
 };