diff --git a/sim/detectors/mvd/CbmMvdDigitizer.cxx b/sim/detectors/mvd/CbmMvdDigitizer.cxx
index f7817b432da0a051b21a84e8fd480d88db17af39..97761f33460a6d8d3a5d15aaa3be7cd0f4bc8984 100644
--- a/sim/detectors/mvd/CbmMvdDigitizer.cxx
+++ b/sim/detectors/mvd/CbmMvdDigitizer.cxx
@@ -403,6 +403,15 @@ void CbmMvdDigitizer::BuildEvent()
   // ----- First treat standard input file
   nOrig = fInputPoints->GetEntriesFast();
 
+  // Since the points are distributed to several sensor tasks which creates
+  // several new arrays, the array index can't be used to link the proper
+  // MC information in the tasks to be used inside the task to link the
+  // correct MC information
+  // Add the index in the original array to to the point itself
+  for (int iPoint = 0; iPoint < nOrig; iPoint++) {
+    point = static_cast<CbmMvdPoint*>(fInputPoints->At(iPoint));
+    point->SetPointId(iPoint);
+  }
 
   // ----- Then treat event pileup
   if (fNPileup > 0) {
diff --git a/sim/detectors/mvd/CbmMvdPixelCharge.cxx b/sim/detectors/mvd/CbmMvdPixelCharge.cxx
index c18a3c8ab09c1b70a9056d5c4b6cddad04dc3796..611a8466c205ba130d76be395b0d9812f2c1fe49 100644
--- a/sim/detectors/mvd/CbmMvdPixelCharge.cxx
+++ b/sim/detectors/mvd/CbmMvdPixelCharge.cxx
@@ -28,14 +28,6 @@ CbmMvdPixelCharge::CbmMvdPixelCharge(Float_t charge, Int_t channelNrX, Int_t cha
   , fTrackCharge(charge)
   , fPixelTime(time)
 {
-  fTrackId.push_back(trackId);
-  fPointId.push_back(pointId);
-  fPointWeight.push_back(charge);
-  fPointX.push_back(pointPosX);
-  fPointY.push_back(pointPosY);
-  fTime.push_back(time);
-  //  fLink.push_back(); // TODO: pass link
-  fDominatorIndex = fPointWeight.size();
 }
 
 // ------- DigestCharge ----------------------------------------------------#
@@ -61,9 +53,7 @@ void CbmMvdPixelCharge::DigestCharge(Float_t pointX, Float_t pointY, Double_t ti
     fPointX.push_back(pointX);
     fPointY.push_back(pointY);
     fTime.push_back(time);
-
-    //  fTime.push_back(time);
-    //  fLink.push_back(); // TODO: pass link
+    fContributors++;
 
     if (chargeContr > fMaxChargeContribution) {
       fDominatorIndex        = fPointWeight.size();