diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx
index 7efe55ed932465edfb2ed47b717aafdd8c96ecb8..96bc17416011ba30af9f5d093c450d1faa4c7793 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx
@@ -500,6 +500,11 @@ StatusCode PixelMainMon::fillHitsMon(void)  // Called once per event
   PixelRDO_Container::const_iterator lastCol = m_rdocontainer->end();
   DataVector<PixelRDORawData>::const_iterator p_rdo;
 
+  int last_ibl_eta_module = -50;
+  int last_ibl_phi_module = -50;
+  int last_ibl_eta_index = -1;
+  int last_ibl_phi_index = -1;
+
   for (; colNext != lastCol; ++colNext) {
     const InDetRawDataCollection<PixelRDORawData>* PixelCollection(*colNext);
     if (!PixelCollection) {
@@ -606,7 +611,22 @@ StatusCode PixelMainMon::fillHitsMon(void)  // Called once per event
       if (m_pixelid->barrel_ec(rdoID) == -2) m_HitPerEventArray_disksC[m_pixelid->phi_module(rdoID)][m_pixelid->layer_disk(rdoID)]++;
       if (m_pixelid->barrel_ec(rdoID) == 0) {
         if (m_doIBL && m_pixelid->layer_disk(rdoID) == 0) {
-          m_HitPerEventArray_lI_phi_paired[m_pixelid->phi_module(rdoID)][m_pixelid->eta_module(rdoID) + 10]++;
+          bool same_module = (m_pixelid->eta_module(rdoID) == last_ibl_eta_module && m_pixelid->phi_module(rdoID) == last_ibl_phi_module);
+          bool neighboring_pixel = (m_pixelid->eta_index(rdoID) == last_ibl_eta_index && m_pixelid->phi_index(rdoID) == last_ibl_phi_index - 1);
+          if (same_module && neighboring_pixel) {
+            last_ibl_eta_index = -1;
+            last_ibl_phi_index = -1;
+          } else if (same_module) {
+            last_ibl_eta_index = m_pixelid->eta_index(rdoID);
+            last_ibl_phi_index = m_pixelid->phi_index(rdoID);
+            m_HitPerEventArray_lI_phi_paired[m_pixelid->phi_module(rdoID)][m_pixelid->eta_module(rdoID) + 10]++;
+          } else {
+            last_ibl_eta_module = m_pixelid->eta_module(rdoID);
+            last_ibl_phi_module = m_pixelid->phi_module(rdoID);
+            last_ibl_eta_index = m_pixelid->eta_index(rdoID);
+            last_ibl_phi_index = m_pixelid->phi_index(rdoID);
+            m_HitPerEventArray_lI_phi_paired[m_pixelid->phi_module(rdoID)][m_pixelid->eta_module(rdoID) + 10]++;
+          }
         }
         if (m_doIBL && m_pixelid->layer_disk(rdoID) == 0) m_HitPerEventArray_lI[m_pixelid->phi_module(rdoID)][m_pixelid->eta_module(rdoID) + 10]++;
         if (m_pixelid->layer_disk(rdoID) == 0 + m_doIBL) m_HitPerEventArray_l0[m_pixelid->phi_module(rdoID)][m_pixelid->eta_module(rdoID) + 6]++;