diff --git a/DDG4/src/Geant4ShapeConverter.cpp b/DDG4/src/Geant4ShapeConverter.cpp
index 23dc838ab3ca53028d7defefc0839b7aa77cb8cd..2a79a69a24fa761562638421028bca5d00b093c8 100644
--- a/DDG4/src/Geant4ShapeConverter.cpp
+++ b/DDG4/src/Geant4ShapeConverter.cpp
@@ -147,11 +147,14 @@ namespace dd4hep {
       const TGeoXtru* sh = (const TGeoXtru*) shape;
       size_t nz = sh->GetNz();
       vector<G4ExtrudedSolid::ZSection> z;
-      vector<G4TwoVector> polygon;
       z.reserve(nz);
-      polygon.reserve(nz);
       for(size_t i=0; i<nz; ++i)   {
         z.emplace_back(G4ExtrudedSolid::ZSection(sh->GetZ(i) * CM_2_MM, {sh->GetXOffset(i), sh->GetYOffset(i)}, sh->GetScale(i)));
+      }
+      size_t np = sh->GetNvert();
+      vector<G4TwoVector> polygon;
+      polygon.reserve(np);
+      for(size_t i=0; i<np; ++i) {
         polygon.emplace_back(sh->GetX(i) * CM_2_MM,sh->GetY(i) * CM_2_MM);
       }
       return new G4ExtrudedSolid(sh->GetName(), polygon, z);