diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 159b03b3f21dff1f1d98b512f2626b6ff72305fe..71bd578d336578a1756d8c72fac5835c376398f5 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,8 +28,8 @@ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} ${Qt5
 
 #sudo apt-get install libpappsomspp-dev
 #FIND_PACKAGE( Pappsomspp REQUIRED )
-# SET (PAPPSOMSPP_DIR  "/home/olivier/eclipse/git/pappsomspp")
- SET (PAPPSOMSPP_DIR  "/home/langella/developpement/git/pappsomspp")
+ SET (PAPPSOMSPP_DIR  "/home/olivier/eclipse/git/pappsomspp")
+# SET (PAPPSOMSPP_DIR  "/home/langella/developpement/git/pappsomspp")
  SET (PAPPSOMSPP_INCLUDE_DIR "${PAPPSOMSPP_DIR}/src")
  SET (PAPPSOMSPP_QT5_LIBRARY "${PAPPSOMSPP_DIR}/cbuild/src/libpappsomspp-qt5.so")
  SET (PAPPSOMSPP_WIDGET_QT5_LIBRARY "${PAPPSOMSPP_DIR}/cbuild/src/pappsomspp/widget/libpappsomspp-widget-qt5.so")
diff --git a/src/core/identificationgroup.cpp b/src/core/identificationgroup.cpp
index dd7ec45b74524f673da6af88df834772de8c3d4d..267c9e895281c899815abb62d8da4b7d4aecdbef 100644
--- a/src/core/identificationgroup.cpp
+++ b/src/core/identificationgroup.cpp
@@ -320,3 +320,12 @@ pappso::pappso_double IdentificationGroup::getProteinFdr(ValidationState state)
     return (false_prot/total_prot);
 }
 
+
+void IdentificationGroup::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const {
+    if (!contains(p_peptide_evidence->getMsRunP())) 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);
+        }
+    }
+}
diff --git a/src/core/identificationgroup.h b/src/core/identificationgroup.h
index 0469f961e27236eedc99b260376599271e118b67..ea4ade657f3367ecc159fcb049b16aa190084ece 100644
--- a/src/core/identificationgroup.h
+++ b/src/core/identificationgroup.h
@@ -132,6 +132,14 @@ public:
      * each peptide evidence is only counted once
      */
     void collectMhDelta(std::vector< pappso::pappso_double> & delta_list, pappso::PrecisionUnit unit, ValidationState state) 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
+     */
+    void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const;
+
 private :
 
     void addMsRunSp(MsRunSp ms_run_sp);
diff --git a/src/core/project.cpp b/src/core/project.cpp
index 937fec4e58f39490b568811090f909b2579def80..1bd84997c9bdb48d716f3c484a23bd702ec4c389 100644
--- a/src/core/project.cpp
+++ b/src/core/project.cpp
@@ -200,3 +200,9 @@ bool Project::hasPtmExperiment() const {
     if (getIdentificationGroupList().at(0)->getPtmGroupingExperiment() != nullptr) return true;
     return false;
 }
+
+void Project::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const {
+    for (const IdentificationGroup * p_ident_group: _identification_goup_list) {
+        p_ident_group->getSameXicPeptideEvidenceList(p_peptide_evidence, peptide_evidence_list);
+    }
+}
diff --git a/src/core/project.h b/src/core/project.h
index c4e762931564d0215084ebbc51a6175c0dba9ae2..b21d48385538d70e4d7b858bba6066d0fe4b2482 100644
--- a/src/core/project.h
+++ b/src/core/project.h
@@ -72,21 +72,27 @@ public:
     std::vector<IdentificationGroup *> getIdentificationGroupList();
     const std::vector<IdentificationGroup *> getIdentificationGroupList() const;
     void readResultFile(QString filename);
-    
+
     /** @brief check that modifications are coded with PSI MOD accessions
      */
     bool checkPsimodCompliance() const;
-    
+
     /** @brief apply labeling method to all peptide match
      * */
     void setLabelingMethodSp(LabelingMethodSp labeling_method_sp);
-    
+
     /** @brief get labeling method shared pointer
      * */
     LabelingMethodSp getLabelingMethodSp() const;
-    
+
     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
+     */
+    void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const;
+
 private :
     LabelingMethodSp _labeling_method_sp;
     ProjectMode _project_mode = ProjectMode::combined;
@@ -102,7 +108,7 @@ private :
     IdentificationDataSourceStore _identification_data_source_store;
     MsRunStore _msrun_store;
     FastaFileStore _fasta_file_store;
-    
+
 };
 
 #endif // PROJECT_H
diff --git a/src/gui/xic_view/xic_box/xic_box.ui b/src/gui/xic_view/xic_box/xic_box.ui
index f6a62be40c1da65492a5359db21253ad64ef91f1..b7e5d597bcc18b08a0cb8082f798e175323c8277 100644
--- a/src/gui/xic_view/xic_box/xic_box.ui
+++ b/src/gui/xic_view/xic_box/xic_box.ui
@@ -18,6 +18,12 @@
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
       <widget class="QLabel" name="peptide_label">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
        <property name="text">
         <string>TextLabel</string>
        </property>
@@ -28,7 +34,14 @@
    <item>
     <layout class="QVBoxLayout" name="verticalLayout">
      <item>
-      <widget class="pappso::XicWidget" name="xic_widget" native="true"/>
+      <widget class="pappso::XicWidget" name="xic_widget" native="true">
+       <property name="minimumSize">
+        <size>
+         <width>0</width>
+         <height>150</height>
+        </size>
+       </property>
+      </widget>
      </item>
     </layout>
    </item>
diff --git a/src/gui/xic_view/xic_box/xicbox.cpp b/src/gui/xic_view/xic_box/xicbox.cpp
index 169eef1e89251b50a6eb0b1f90989dbc4cde1319..92bae7c23747e8983d2e135c5bfabbef7ee65b51 100644
--- a/src/gui/xic_view/xic_box/xicbox.cpp
+++ b/src/gui/xic_view/xic_box/xicbox.cpp
@@ -31,6 +31,7 @@
 #include <QMessageBox>
 #include <pappsomspp/pappsoexception.h>
 #include "../xicworkerthread.h"
+#include "../../project_view/projectwindow.h"
 
 XicBox::XicBox(XicWindow *parent):
     QWidget(parent),
@@ -73,6 +74,11 @@ void XicBox::setPeptideEvidence(const PeptideEvidence * p_peptide_evidence) {
     _p_peptide_evidence = p_peptide_evidence;
     ui->peptide_label->setText(_p_peptide_evidence->getPeptideXtpSp().get()->toString());
 
+    //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);
+
     emit loadXic(_p_peptide_evidence->getMsRunP(), _p_peptide_evidence->getPeptideXtpSp().get()->getMz(_p_peptide_evidence->getCharge()), _p_xic_window->getXicExtractPrecision(), XicExtractMethod::max);
 
 }
@@ -81,7 +87,11 @@ void XicBox::setPeptideEvidence(const PeptideEvidence * p_peptide_evidence) {
 void XicBox::setXic(pappso::XicSp xic_sp) {
     qDebug() << "XicBox::setXic begin";
     ui->xic_widget->setXicSp(xic_sp);
+    for (const PeptideEvidence * peptide_evidence:_peptide_evidence_list) {
+        ui->xic_widget->addMsMsEvent(peptide_evidence->getRetentionTime());
+    }
+    ui->xic_widget->rescale();
     ui->xic_widget->plot();
     qDebug() << "XicBox::setXic end";
-    
+
 }
diff --git a/src/gui/xic_view/xic_box/xicbox.h b/src/gui/xic_view/xic_box/xicbox.h
index 4ad6e916203820d401f0926511a523595beabb7f..b28336fc2c27525250c3aeead80dd85547f1f12d 100644
--- a/src/gui/xic_view/xic_box/xicbox.h
+++ b/src/gui/xic_view/xic_box/xicbox.h
@@ -59,6 +59,7 @@ private:
     QThread _xic_thread;
     XicWindow * _p_xic_window;
     const PeptideEvidence * _p_peptide_evidence;
+    std::vector<const PeptideEvidence *> _peptide_evidence_list;
 };
 
 
diff --git a/src/gui/xic_view/xic_window.ui b/src/gui/xic_view/xic_window.ui
index fa9b6cb8584b39e55123a0b9b3fcff5bdf941062..87a851d17d9279c82da654331fe3e3350a2e20a1 100644
--- a/src/gui/xic_view/xic_window.ui
+++ b/src/gui/xic_view/xic_window.ui
@@ -16,7 +16,22 @@
   <widget class="QWidget" name="centralwidget">
    <layout class="QVBoxLayout" name="verticalLayout_2">
     <item>
-     <layout class="QVBoxLayout" name="xic_vertical_layout"/>
+     <widget class="QScrollArea" name="scrollArea">
+      <property name="widgetResizable">
+       <bool>true</bool>
+      </property>
+      <widget class="QWidget" name="xic_vertical_layout">
+       <property name="geometry">
+        <rect>
+         <x>0</x>
+         <y>0</y>
+         <width>780</width>
+         <height>530</height>
+        </rect>
+       </property>
+       <layout class="QVBoxLayout" name="verticalLayout"/>
+      </widget>
+     </widget>
     </item>
    </layout>
   </widget>
diff --git a/src/gui/xic_view/xicwindow.cpp b/src/gui/xic_view/xicwindow.cpp
index 56118dbd42a5b670f3410dd9200aec12c58bb617..c7af95449bcade4f2fb4c4ade7f07b580eb70e09 100644
--- a/src/gui/xic_view/xicwindow.cpp
+++ b/src/gui/xic_view/xicwindow.cpp
@@ -55,11 +55,13 @@ XicWindow::~XicWindow()
 {
     qDebug() << "XicWindow::~XicWindow";
 }
-
+ProjectWindow * XicWindow::getProjectWindow() {
+    return _project_window;
+}
 void XicWindow::addXic(const PeptideEvidence * p_peptide_evidence) {
     XicBox * p_box = new XicBox(this);
     p_box->setPeptideEvidence(p_peptide_evidence);
-    ui->xic_vertical_layout->addWidget(p_box);
+    ui->xic_vertical_layout->layout()->addWidget(p_box);
 }
 
 pappso::PrecisionP XicWindow::getXicExtractPrecision() const {
diff --git a/src/gui/xic_view/xicwindow.h b/src/gui/xic_view/xicwindow.h
index b6462314a27ff28ef8696f5d26aa627098edee79..d48531dc2d0c1fb5ca01c2fed7e96a24d2e2189d 100644
--- a/src/gui/xic_view/xicwindow.h
+++ b/src/gui/xic_view/xicwindow.h
@@ -56,7 +56,7 @@ public:
     pappso::PrecisionP getXicExtractPrecision() const;
     
 protected:
-    
+    ProjectWindow * getProjectWindow();
 private:
     ProjectWindow * _project_window;
     Ui::XicWindow *ui;
diff --git a/src/utils/peptideevidencestore.cpp b/src/utils/peptideevidencestore.cpp
index e002f542a4b2ab5a4f1ad297057b1c9687ce03cd..28b2928f639bcfc18646f74a261bc0b75b4e5480 100644
--- a/src/utils/peptideevidencestore.cpp
+++ b/src/utils/peptideevidencestore.cpp
@@ -93,3 +93,13 @@ void PeptideEvidenceStore::updateAutomaticFilters(const AutomaticFilterParameter
 const std::vector<std::shared_ptr<PeptideEvidence>> & PeptideEvidenceStore::getPeptideEvidenceList() const {
     return _peptide_evidence_list;
 }
+
+
+void PeptideEvidenceStore::getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) 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;
+        peptide_evidence_list.push_back(peptide_evidence_sp.get());
+    }
+}
diff --git a/src/utils/peptideevidencestore.h b/src/utils/peptideevidencestore.h
index 755ec66eafbe1f63e8c96a19a845f4893404a013..c1d4ff894e4666d6ac8014b3f3021f1348914679 100644
--- a/src/utils/peptideevidencestore.h
+++ b/src/utils/peptideevidencestore.h
@@ -52,6 +52,15 @@ public:
     const std::vector<std::shared_ptr<PeptideEvidence>> & getPeptideEvidenceList() const;
     std::size_t size() const;
     void clearMap();
+    
+       
+    
+    /** @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
+     */
+    void getSameXicPeptideEvidenceList(const PeptideEvidence * p_peptide_evidence, std::vector<const PeptideEvidence *> & peptide_evidence_list) const;
+
 private:
     std::vector<std::shared_ptr<PeptideEvidence>> _peptide_evidence_list;
     
diff --git a/src/utils/readspectrum.cpp b/src/utils/readspectrum.cpp
index 50f208feb293e873b016f77d0514a71edc916a39..051cf3c395b5d43831ac2ded03733cde66987d6c 100644
--- a/src/utils/readspectrum.cpp
+++ b/src/utils/readspectrum.cpp
@@ -127,6 +127,7 @@ void getXicFromPwizMSDataFile(pwiz::msdata::MSDataFile * p_ms_data_file, pappso:
     }
 
 
+    p_xic->sortByRetentionTime();