diff --git a/src/core/identificationgroup.cpp b/src/core/identificationgroup.cpp
index 267c9e895281c899815abb62d8da4b7d4aecdbef..9825c9f18cebf7773a1fa850979c3dd3a09bd83f 100644
--- a/src/core/identificationgroup.cpp
+++ b/src/core/identificationgroup.cpp
@@ -321,11 +321,11 @@ pappso::pappso_double IdentificationGroup::getProteinFdr(ValidationState state)
 }
 
 
-void IdentificationGroup::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const {
-    if (!contains(p_peptide_evidence->getMsRunP())) return;
+void IdentificationGroup::getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const {
+    if (!contains(p_msrun)) return;
     for (const IdentificationDataSource * p_identification_source:_id_source_list) {
-        if (p_peptide_evidence->getMsRunP() == p_identification_source->getMsRunSp().get()) {
-            p_identification_source->getPeptideEvidenceStore().getSameXicPeptideEvidenceList(p_peptide_evidence, peptide_evidence_list);
+        if (p_msrun == p_identification_source->getMsRunSp().get()) {
+            p_identification_source->getPeptideEvidenceStore().getSameXicPeptideEvidenceList(peptide_evidence_list, p_msrun, p_peptide, charge);
         }
     }
 }
diff --git a/src/core/identificationgroup.h b/src/core/identificationgroup.h
index ea4ade657f3367ecc159fcb049b16aa190084ece..110d7d9aff63e6becc661ef62fada025a455cf7d 100644
--- a/src/core/identificationgroup.h
+++ b/src/core/identificationgroup.h
@@ -135,10 +135,12 @@ public:
     
     
     /** @brief look for a peptide in the same XIC
-     * @param p_peptide_evidence the peptide to look for
      * @param peptide_evidence_list the peptide evidence list to build
+     * @param p_msrun MSrun to look for 
+     * @param p_peptide peptide to look for 
+     * @param charge charge to look for 
      */
-    void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const;
+    void getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const;
 
 private :
 
diff --git a/src/core/project.cpp b/src/core/project.cpp
index 1bd84997c9bdb48d716f3c484a23bd702ec4c389..9beaae9a6d818bd42ca39fa7f0ad15781359aeb4 100644
--- a/src/core/project.cpp
+++ b/src/core/project.cpp
@@ -201,8 +201,8 @@ bool Project::hasPtmExperiment() const {
     return false;
 }
 
-void Project::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const {
+void Project::getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const {
     for (const IdentificationGroup * p_ident_group: _identification_goup_list) {
-        p_ident_group->getSameXicPeptideEvidenceList(p_peptide_evidence, peptide_evidence_list);
+        p_ident_group->getSameXicPeptideEvidenceList(peptide_evidence_list, p_msrun,  p_peptide, charge);
     }
 }
diff --git a/src/core/project.h b/src/core/project.h
index b21d48385538d70e4d7b858bba6066d0fe4b2482..3710b3d3e51e5ba73f87c2c655ae8e2ad077170a 100644
--- a/src/core/project.h
+++ b/src/core/project.h
@@ -88,10 +88,12 @@ public:
     bool hasPtmExperiment() const;
 
     /** @brief look for a peptide in the same XIC
-     * @param p_peptide_evidence the peptide to look for
      * @param peptide_evidence_list the peptide evidence list to build
+     * @param p_msrun MSrun to look for 
+     * @param p_peptide peptide to look for 
+     * @param charge charge to look for 
      */
-    void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const;
+    void getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const;
 
 private :
     LabelingMethodSp _labeling_method_sp;
diff --git a/src/gui/xic_view/xic_box/xicbox.cpp b/src/gui/xic_view/xic_box/xicbox.cpp
index 6abf1eaae2e5f27465b40f869433ec36c3dd7ffe..8f7dd617cf0d15fe69d974c93975bd180a05d977 100644
--- a/src/gui/xic_view/xic_box/xicbox.cpp
+++ b/src/gui/xic_view/xic_box/xicbox.cpp
@@ -167,14 +167,14 @@ void XicBox::setPeptideEvidence(const PeptideEvidence * p_peptide_evidence) {
     //get same xic peptide evidence (msrun, peptide, charge)
     //p_projet
     _peptide_evidence_list.clear();
-    _p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(p_peptide_evidence, _peptide_evidence_list);
+    _p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(_peptide_evidence_list, _msrun_sp.get(),_p_peptide_evidence->getPeptideXtpSp().get(),_p_peptide_evidence->getCharge());
 
     emit computeIsotopeMassList(_p_peptide_evidence->getPeptideXtpSp(), _p_peptide_evidence->getCharge(), _p_xic_window->getXicExtractPrecision(), 0.8);
 
 }
 
 void XicBox::setPeptideEvidenceInMsRun(const PeptideEvidence * p_peptide_evidence, MsRunSp msrun_sp) {
-        _p_peptide_evidence = p_peptide_evidence;
+    _p_peptide_evidence = p_peptide_evidence;
     _msrun_sp = msrun_sp;
 
     ui->peptide_label->setText(_p_peptide_evidence->getPeptideXtpSp().get()->toString());
@@ -185,6 +185,8 @@ void XicBox::setPeptideEvidenceInMsRun(const PeptideEvidence * p_peptide_evidenc
     //get same xic peptide evidence (msrun, peptide, charge)
     //p_projet
     _peptide_evidence_list.clear();
+
+    _p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(_peptide_evidence_list, _msrun_sp.get(),_p_peptide_evidence->getPeptideXtpSp().get(),_p_peptide_evidence->getCharge());
     //_p_xic_window->getProjectWindow()->getProjectP()->getSameXicPeptideEvidenceList(p_peptide_evidence, _peptide_evidence_list);
 
     emit computeIsotopeMassList(_p_peptide_evidence->getPeptideXtpSp(), _p_peptide_evidence->getCharge(), _p_xic_window->getXicExtractPrecision(), 0.8);
diff --git a/src/utils/peptideevidencestore.cpp b/src/utils/peptideevidencestore.cpp
index 28b2928f639bcfc18646f74a261bc0b75b4e5480..c6ab7295f3b4a5bea287824327b175a70424cd69 100644
--- a/src/utils/peptideevidencestore.cpp
+++ b/src/utils/peptideevidencestore.cpp
@@ -95,11 +95,11 @@ const std::vector<std::shared_ptr<PeptideEvidence>> & PeptideEvidenceStore::getP
 }
 
 
-void PeptideEvidenceStore::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const {
+void PeptideEvidenceStore::getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const {
     for (const PeptideEvidenceSp & peptide_evidence_sp:_peptide_evidence_list) {
-        if (p_peptide_evidence->getMsRunP() != peptide_evidence_sp.get()->getMsRunP()) continue;
-        if (p_peptide_evidence->getPeptideXtpSp().get() != peptide_evidence_sp.get()->getPeptideXtpSp().get()) continue;
-        if (p_peptide_evidence->getCharge() != peptide_evidence_sp.get()->getCharge()) continue;
+        if (p_msrun != peptide_evidence_sp.get()->getMsRunP()) continue;
+        else if (p_peptide != peptide_evidence_sp.get()->getPeptideXtpSp().get()) continue;
+        else if (charge != peptide_evidence_sp.get()->getCharge()) continue;
         peptide_evidence_list.push_back(peptide_evidence_sp.get());
     }
 }
diff --git a/src/utils/peptideevidencestore.h b/src/utils/peptideevidencestore.h
index c1d4ff894e4666d6ac8014b3f3021f1348914679..1ae1889c3778f7f611744407a651d9d9d6854a7d 100644
--- a/src/utils/peptideevidencestore.h
+++ b/src/utils/peptideevidencestore.h
@@ -35,6 +35,8 @@
 #include <vector>
 #include <map>
 #include "../core/automaticfilterparameters.h"
+#include "../core/peptidextp.h"
+#include "../core/msrun.h"
 
 class PeptideEvidence;
 
@@ -56,10 +58,12 @@ public:
        
     
     /** @brief look for a peptide in the same XIC
-     * @param p_peptide_evidence the peptide to look for
      * @param peptide_evidence_list the peptide evidence list to build
+     * @param p_msrun MSrun to look for 
+     * @param p_peptide peptide to look for 
+     * @param charge charge to look for 
      */
-    void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const;
+    void getSameXicPeptideEvidenceList(std::vector<const PeptideEvidence *> & peptide_evidence_list, const MsRun * p_msrun, const PeptideXtp * p_peptide, unsigned int charge) const;
 
 private:
     std::vector<std::shared_ptr<PeptideEvidence>> _peptide_evidence_list;