diff --git a/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.cpp b/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.cpp
index 521621d7d79b31fba3b890bfb3f78c55bd996920..7ebedd1b945fff0a65d896a5bdf9fb6001cdd32c 100644
--- a/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.cpp
+++ b/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.cpp
@@ -456,20 +456,16 @@ MassSpectrumWidget::computeIsotopeMassList()
 }
 
 void
-pappso::MassSpectrumWidget::highlightPrecursorPeaks(bool highlight_status)
+pappso::MassSpectrumWidget::highlightPrecursorPeaks()
 {
-  if(highlight_status == true)
+
+  if(_ms_level > 1)
     {
-      if(_ms_level > 1)
-        {
-          pappso_double precursor_mz_1 = _peptide_sp->getMz(1);
-          _custom_plot->highlightPrecursorPeaks(precursor_mz_1,
-                                                _p_ms2_precision);
-          pappso_double precursor_mz_charge =
-            _peptide_sp->getMz(_peptide_charge);
-          _custom_plot->highlightPrecursorPeaks(precursor_mz_charge,
-                                                _p_ms2_precision);
-        }
+      pappso_double precursor_mz_1 = _peptide_sp->getMz(1);
+      _custom_plot->highlightPrecursorPeaks(
+        precursor_mz_1, 1, _p_ms2_precision);
+      pappso_double precursor_mz_charge = _peptide_sp->getMz(_peptide_charge);
+      _custom_plot->highlightPrecursorPeaks(
+        precursor_mz_charge, _peptide_charge, _p_ms2_precision);
     }
-  _custom_plot->setPrecursorHighlightVisibility(highlight_status);
 }
diff --git a/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.h b/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.h
index 5704f114165a5e55b9d5ebd44d202a742c297799..29b6528ce3825b4ae128bf59fc467c3abdef3662 100644
--- a/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.h
+++ b/src/pappsomspp/widget/massspectrumwidget/massspectrumwidget.h
@@ -68,7 +68,7 @@ class PMSPP_LIB_DECL MassSpectrumWidget : public GraphicDeviceWidget
 
   bool savePdf(const QString &fileName, int width = 0, int height = 0);
   void toQPaintDevice(QPaintDevice *device, const QSize &size) override;
-  void highlightPrecursorPeaks(bool highlight_status);
+  void highlightPrecursorPeaks();
   // void setIsotopeMassList(std::vector<pappso::PeptideNaturalIsotopeAverageSp>
   // & isotope_mass_list);
 
diff --git a/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.cpp b/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.cpp
index ff768164cc14d9d764c02df2346e57d24328a242..12c82a75005235736a92f788c41cd46badffb1d5 100644
--- a/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.cpp
+++ b/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.cpp
@@ -250,6 +250,8 @@ QCPSpectrum::clearData()
   _p_peak_bars_isotope->setData(QVector<double>(), QVector<double>());
   _p_peak_bars_isotope->data().clear();
   qDebug();
+  mp_peak_bars_precursor->setData(QVector<double>(), QVector<double>());
+  mp_peak_bars_precursor->data().clear();
   for(std::pair<PeptideIon, QCPBars *> pair_ion_bar : _map_ion_type_bars)
     {
       pair_ion_bar.second->setData(QVector<double>(), QVector<double>());
@@ -467,41 +469,28 @@ QCPSpectrum::addMs1IsotopePattern(
 
 void
 pappso::QCPSpectrum::highlightPrecursorPeaks(double precursor_mz,
+                                             int charge,
                                              PrecisionPtr ms2_precision)
 {
-  if(mp_precursorLabels.size() == 0)
-    {
-      MzRange range(precursor_mz, ms2_precision);
+  MzRange range(precursor_mz, ms2_precision);
+  double precursor_mz_c13 = precursor_mz + (DIFFC12C13 / charge);
+  MzRange range_c13(precursor_mz_c13, ms2_precision);
 
-      for(const DataPoint &peak : *_p_spectrum)
+  for(const DataPoint &peak : *_p_spectrum)
+    {
+      if(((peak.x > range.lower()) && (peak.x < range.upper())) ||
+         ((peak.x > range_c13.lower()) && (peak.x < range_c13.upper())))
         {
-          if((peak.x > range.lower()) && (peak.x < range.upper()))
-            {
-              mp_peak_bars_precursor->addData(peak.x, peak.y);
-              QCPItemText *text_label = new QCPItemText(this);
-              text_label->setVisible(true);
-              text_label->setPositionAlignment(Qt::AlignBottom |
-                                               Qt::AlignHCenter);
-              text_label->position->setType(QCPItemPosition::ptPlotCoords);
-              text_label->position->setCoords(
-                peak.x,
-                peak.y); // place position at center/top of axis rect
-              text_label->setFont(QFont(font().family(), 8));
-              text_label->setText("precursor");
-              text_label->setColor(Qt::cyan);
-              mp_precursorLabels.push_back(text_label);
-            }
+          mp_peak_bars_precursor->addData(peak.x, peak.y);
+          QCPItemText *text_label = new QCPItemText(this);
+          text_label->setVisible(true);
+          text_label->setPositionAlignment(Qt::AlignBottom | Qt::AlignHCenter);
+          text_label->position->setType(QCPItemPosition::ptPlotCoords);
+          text_label->position->setCoords(peak.x, peak.y);
+          // place position at center/top of axis rect
+          text_label->setFont(QFont(font().family(), 8));
+          text_label->setText("precursor");
+          text_label->setColor(Qt::cyan);
         }
     }
 }
-
-void
-pappso::QCPSpectrum::setPrecursorHighlightVisibility(bool highlight_status)
-{
-  mp_peak_bars_precursor->setVisible(highlight_status);
-  for(QCPItemText *text_label : mp_precursorLabels)
-    {
-      text_label->setVisible(highlight_status);
-    }
-  replot();
-}
diff --git a/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.h b/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.h
index 12fe237cf81d36ae035b8d25268f0797eaa04580..be5beca47122c2f503a840ec688646f6bdf742a2 100644
--- a/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.h
+++ b/src/pappsomspp/widget/massspectrumwidget/qcpspectrum.h
@@ -60,8 +60,9 @@ class QCPSpectrum : public QCustomPlot
                          &isotope_mass_list,
                        pappso_double intensity);
   void addPeakIonIsotopeMatch(const PeakIonIsotopeMatch &peak_ion_match);
-  void highlightPrecursorPeaks(double precursor_mz, PrecisionPtr ms2_precision);
-  void setPrecursorHighlightVisibility(bool highlight_status);
+  void highlightPrecursorPeaks(double precursor_mz,
+                               int charge,
+                               PrecisionPtr ms2_precision);
   virtual void mouseMoveEvent(QMouseEvent *event) override;
   virtual void mousePressEvent(QMouseEvent *event) override;
   virtual void mouseReleaseEvent(QMouseEvent *event) override;
@@ -86,7 +87,6 @@ class QCPSpectrum : public QCustomPlot
   QCPBars *_p_peak_bars;
   QCPBars *_p_peak_bars_isotope;
   QCPBars *mp_peak_bars_precursor;
-  std::vector<QCPItemText *> mp_precursorLabels;
   std::map<PeptideIon, QCPBars *> _map_ion_type_bars;
   QCPAxisRect *_p_delta_axis_rect;
   QCPGraph *_p_delta_graph;