diff --git a/DDG4/lcio/LCIOConversions.cpp b/DDG4/lcio/LCIOConversions.cpp
index 00bc8a291be1249e9f52564ca2572b283075791e..5bbbd7acc053752baf7665257fb49de1c92f4d93 100644
--- a/DDG4/lcio/LCIOConversions.cpp
+++ b/DDG4/lcio/LCIOConversions.cpp
@@ -179,13 +179,21 @@ namespace dd4hep {
                          Geant4Calorimeter::Hit>::operator()(const arg_t& args)  const  {
       typedef Geant4HitData::Contributions Contributions;
       Geant4HitCollection*   coll     = args.second;
+      string                 hc_nam   = coll->GetName();
       Geant4Sensitive*       sd       = coll->sensitive();
       size_t                 nhits    = coll->GetSize();
       string                 dsc      = encoding(sd->sensitiveDetector());
       Geant4ParticleMap*     pm       = args.first->event().extension<Geant4ParticleMap>();
       lcio::LCEventImpl*     lc_evt   = args.first->event().extension<lcio::LCEventImpl>();
       EVENT::LCCollection*   lc_parts = lc_evt->getCollection(lcio::LCIO::MCPARTICLE);
-      lcio::LCCollectionVec* lc_coll  = new lcio::LCCollectionVec(lcio::LCIO::SIMCALORIMETERHIT);
+      lcio::LCCollectionVec* lc_coll  = nullptr;
+      bool isNewCollection            = false;
+      try {
+        lc_coll = static_cast<lcio::LCCollectionVec*>(lc_evt->getCollection(hc_nam));
+      } catch (lcio::DataNotAvailableException &e) {
+        lc_coll = new lcio::LCCollectionVec(lcio::LCIO::SIMCALORIMETERHIT);
+        isNewCollection = true;
+      }
       UTIL::CellIDEncoder<SimCalorimeterHit> decoder(dsc,lc_coll);
       int hit_creation_mode = sd->hitCreationMode();
 
@@ -194,7 +202,7 @@ namespace dd4hep {
       else
         lc_coll->setFlag(UTIL::make_bitset32(LCIO::CHBIT_LONG,LCIO::CHBIT_ID1));
 
-      lc_coll->reserve(nhits);
+      lc_coll->reserve(nhits + lc_coll->getNumberOfElements());
       if ( sd->hasProperty("HitCreationMode") )  {
         hit_creation_mode = sd->property("HitCreationMode").value<int>();
       }
@@ -225,6 +233,9 @@ namespace dd4hep {
           }
         }
       }
+      if(isNewCollection) {
+        lc_evt->addCollection(lc_coll, hc_nam);
+      }
       return lc_coll;
     }