diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
index 43d14bc8d85ca41fb058d87b0d9c3fe980caa6f4..42e076a49f186bcc1fbdfae87ba1e2644d5e4d08 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.cxx
@@ -291,7 +291,9 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime,
                                                    UInt_t uSeedDigiIdx) {
   /// If previous event valid and event overlap not allowed, check if we are in overlap
   /// and react accordingly
-  if (nullptr != fCurrentEvent && EOverlapMode::AllowOverlap != fOverMode
+  if (nullptr != fCurrentEvent
+      && (EOverlapMode::AllowOverlap != fOverMode
+          || dSeedTime - fdPrevEvtTime < fRefDet.GetTimeWinRange())
       && dSeedTime - fdPrevEvtTime < fdWidestTimeWinRange) {
     /// Within overlap range
     switch (fOverMode) {
@@ -306,11 +308,14 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime,
         break;
       }  // case EOverlapMode::MergeOverlap:
       case EOverlapMode::AllowOverlap: {
-        /// Not in Merge overlap mode => should have been catched before, nothing to do
+        /// In allow overlap mode => reject only if reference det is in overlap
+        /// to avoid cloning events due to single seed cluster
+        LOG(debug1) << "Reject seed because part of cluster of previous one";
+        return;
         break;
       }  // case EOverlapMode::AllowOverlap:
     }    // switch( fOverMode )
-  }      // if( prev Event exists and overlap not allowed and overlap present )
+  }      // if( prev Event exists and mode forbiden overlap present )
   else {
     /// Out of overlap range or in overlap allowed mode
     /// => store previous event if not empty and create new one
@@ -322,7 +327,7 @@ void CbmMcbm2019TimeWinEventBuilderAlgo::CheckSeed(Double_t dSeedTime,
       fuCurEv++;
     }  // if( nullptr != fCurrentEvent )
     fCurrentEvent = new CbmEvent(fuCurEv, dSeedTime, 0.);
-  }  // else of if( prev Event exists and overlap not allowed and overlap present )
+  }  // else of if( prev Event exists and mode forbiden overlap present )
 
   /// If window open for reference detector, search for other reference Digis matching it
   /// Otherwise only add the current seed
diff --git a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
index efe475a3fc5758b7c0be2c381732a044c9112f97..58dcf9b1ae4554cfe2a7def3bc26e73aae34fed4 100644
--- a/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
+++ b/fles/mcbm2018/tasks/CbmMcbm2019TimeWinEventBuilderAlgo.h
@@ -66,6 +66,8 @@ public:
     return (other.detId != this->detId);
   }
 
+  Double_t GetTimeWinRange() { return fdTimeWinEnd - fdTimeWinBeg; }
+
   /// Settings
   ECbmModuleId detId    = ECbmModuleId::kNotExist;
   ECbmDataType dataType = ECbmDataType::kUnknown;