diff --git a/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPSiDBasicKalmanTool.cxx b/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPSiDBasicKalmanTool.cxx
index 91974f4fd0660785727b3a0acb7605a26ab09ee7..b28e8bcd7886119cd209f09e9e8b4215ba76dc07 100644
--- a/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPSiDBasicKalmanTool.cxx
+++ b/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPSiDBasicKalmanTool.cxx
@@ -265,9 +265,9 @@ void AFPSiDBasicKalmanTool::saveToXAOD (const AFPSiDBasicKalmanToolTrack& recoTr
   // add links to clusters
   ATH_MSG_DEBUG("Track position: (x="<<track->xLocal()<<", y="<<track->yLocal()<<", z="<<track->zLocal()<<")   slope: (dx="<<track->xSlope()<<", dy="<<track->ySlope()<<")   chi2="<<track->chi2()<<", nHoles="<<track->nHoles()<<", nClusters="<<track->nClusters());
   for (const xAOD::AFPSiHitsCluster* theCluster : recoTrack.clustersInTrack()) {
-    ElementLink< xAOD::AFPSiHitsClusterContainer >* clusterLink = new ElementLink< xAOD::AFPSiHitsClusterContainer >; // will be taken over by the xAODCluster and deleted
-    clusterLink->toContainedElement(*hitsClusterContainer, theCluster);
-    track->addCluster(*clusterLink);
+    ElementLink< xAOD::AFPSiHitsClusterContainer > clusterLink;
+    clusterLink.toContainedElement(*hitsClusterContainer, theCluster);
+    track->addCluster(clusterLink);
 
     ATH_MSG_DEBUG("cluster position: (x="<<theCluster->xLocal()<<", y="<<theCluster->yLocal()<<", z="<<theCluster->zLocal()<<")");
   }
diff --git a/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPTDBasicTool.cxx b/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPTDBasicTool.cxx
index e4227a8d43b057d5aff9bd101d97d2cb041e8792..8cdf981c9707c62bd22df840211dac28bcc9df16 100644
--- a/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPTDBasicTool.cxx
+++ b/ForwardDetectors/AFP/AFP_Reconstruction/AFP_LocReco/src/AFPTDBasicTool.cxx
@@ -151,9 +151,9 @@ void AFPTDBasicTool::saveToXAOD (const AFPTDBasicToolTrack& recoTrack, std::uniq
 // add links to bars
     ATH_MSG_DEBUG("Track time: (time="<<track->trainTime()<<", size="<<track->trainSize()<<", train id="<<track->trainID()<<")   station: (st="<<track->stationID()<<")");
     for (const xAOD::AFPToFHit* theHit : recoTrack.barInTrain()) {
-        ElementLink< xAOD::AFPToFHitContainer >* barLink = new ElementLink< xAOD::AFPToFHitContainer >; // will be taken over by the xAODTrain and deleted
-        barLink->toContainedElement(*hitContainer, theHit);
-        track->addBar(*barLink);
+        ElementLink< xAOD::AFPToFHitContainer > barLink;
+        barLink.toContainedElement(*hitContainer, theHit);
+        track->addBar(barLink);
 
         ATH_MSG_DEBUG("bar time="<<theHit->time()<<" bar in train ="<<theHit->barInTrainID()<<", trin id ="<<theHit->trainID()<<")");
     }
diff --git a/ForwardDetectors/AFP/AFP_Reconstruction/AFP_SiClusterTools/src/AFPSiClusterTool.cxx b/ForwardDetectors/AFP/AFP_Reconstruction/AFP_SiClusterTools/src/AFPSiClusterTool.cxx
index b39c47dd2adb7bb52d4d09bc622a4d09c4dc979f..0805b4b028166347e6aa681b29abcac400063638 100644
--- a/ForwardDetectors/AFP/AFP_Reconstruction/AFP_SiClusterTools/src/AFPSiClusterTool.cxx
+++ b/ForwardDetectors/AFP/AFP_Reconstruction/AFP_SiClusterTools/src/AFPSiClusterTool.cxx
@@ -212,9 +212,9 @@ StatusCode AFPSiClusterTool::saveToXAOD(std::unique_ptr<xAOD::AFPSiHitsClusterCo
         
         // add links to hits
         for (const xAOD::AFPSiHit* theHit : theCluster.hits()) {
-          ElementLink< xAOD::AFPSiHitContainer >* hitLink = new ElementLink< xAOD::AFPSiHitContainer >; // will be taken over by the xAODCluster and deleted
-          hitLink->toContainedElement(*siHitContainer, theHit);
-          xAODCluster->addHitLink(*hitLink);
+          ElementLink< xAOD::AFPSiHitContainer > hitLink;
+          hitLink.toContainedElement(*siHitContainer, theHit);
+          xAODCluster->addHitLink(hitLink);
         }
       } // end for over layers
     } // end for over stations