diff --git a/DDG4/hepmc/HepMC3EventReader.cpp b/DDG4/hepmc/HepMC3EventReader.cpp
index dc6f7c8976394c2cb02df9d39c1d182f3bf1a5d2..79e9d2cd18063176ef5ebaaf86f0ed861ac1b850 100644
--- a/DDG4/hepmc/HepMC3EventReader.cpp
+++ b/DDG4/hepmc/HepMC3EventReader.cpp
@@ -97,9 +97,7 @@ HEPMC3EventReader::readParticles(int event_number, Vertices& vertices, Particles
     const int   pdg     = mcp->pid();
     PropertyMask status(p->status);
     p->pdgID        = pdg;
-    // p->charge       = int(mcp->getCharge()*3.0);
-    G4ParticleDefinition* def = G4ParticleTable::GetParticleTable()->FindParticle(p->pdgID);
-    p->charge = int(3.0 * (def ? def->GetPDGCharge() : -1.0)); // Assume e-/pi-
+    p->charge       = 0; // int(mcp->getCharge()*3.0); // FIXME
     p->psx          = mom.get_component(0) * mom_unit;
     p->psy          = mom.get_component(1) * mom_unit;
     p->psz          = mom.get_component(2) * mom_unit;
diff --git a/DDG4/plugins/Geant4EventReaderHepEvt.cpp b/DDG4/plugins/Geant4EventReaderHepEvt.cpp
index c8a773758b17491d367657cf6b39e346b1376e41..f1fc11701091c188d809142c3460273b88e4c0f8 100644
--- a/DDG4/plugins/Geant4EventReaderHepEvt.cpp
+++ b/DDG4/plugins/Geant4EventReaderHepEvt.cpp
@@ -85,10 +85,6 @@ namespace dd4hep {
 #include <CLHEP/Units/SystemOfUnits.h>
 #include <CLHEP/Units/PhysicalConstants.h>
 
-// Geant4 include files
-#include <G4GlobalConfig.hh>
-#include <G4ParticleTable.hh>
-
 // C/C++ include files
 #include <cerrno>
 
@@ -241,8 +237,7 @@ Geant4EventReaderHepEvt::readParticles(int /* event_number */,
     //
     //  PDGID
     p->pdgID = IDHEP;
-    auto* def = G4ParticleTable::GetParticleTable()->FindParticle(p->pdgID);
-    p->charge = int(3.0 * (def ? def->GetPDGCharge() : 1.0)); // Assume e-/pi-
+    p->charge = 0;
     //
     //  Momentum vector
     p->pex = p->psx = PHEP1*CLHEP::GeV;
diff --git a/DDG4/plugins/Geant4EventReaderHepMC.cpp b/DDG4/plugins/Geant4EventReaderHepMC.cpp
index 737ef7acbd3e99a65c59c2065cd44f120b3b6503..83ee40ac76bb1e8c16c78cae2c87e31dfd72d5bb 100644
--- a/DDG4/plugins/Geant4EventReaderHepMC.cpp
+++ b/DDG4/plugins/Geant4EventReaderHepMC.cpp
@@ -21,10 +21,6 @@
 @}
  */
 
-// Geant4 include files
-#include <G4GlobalConfig.hh>
-#include <G4ParticleTable.hh>
-
 // Framework include files
 #include <DDG4/IoStreams.h>
 #include <DDG4/Geant4InputAction.h>
@@ -447,8 +443,7 @@ int HepMC::read_particle(EventStream &info, istringstream& input, Geant4Particle
     cout << "Particle id: " << p->id << endl;
   }
 #endif
-  G4ParticleDefinition* def = G4ParticleTable::GetParticleTable()->FindParticle(p->pdgID);
-  p->charge = int(3.0 * (def ? def->GetPDGCharge() : -1.0)); // Assume e-/pi-
+  p->charge = 0;
   p->psx *= info.mom_unit;
   p->psy *= info.mom_unit;
   p->psz *= info.mom_unit;
diff --git a/DDG4/src/Geant4Output2ROOT.cpp b/DDG4/src/Geant4Output2ROOT.cpp
index 0eb97bcf598d16e05f5b52ce5bdc0e405fefff86..c43e585932f3d9fac4c08f9a609b480105c17cf1 100644
--- a/DDG4/src/Geant4Output2ROOT.cpp
+++ b/DDG4/src/Geant4Output2ROOT.cpp
@@ -22,7 +22,7 @@
 
 // Geant4 include files
 #include <G4HCofThisEvent.hh>
-#include <G4ParticleDefinition.hh>
+#include <G4ParticleTable.hh>
 
 // ROOT include files
 #include <TFile.h>
@@ -151,11 +151,15 @@ void Geant4Output2ROOT::saveEvent(OutputContext<G4Event>& /* ctxt */) {
       typedef Geant4HitWrapper::HitManipulator Manip;
       typedef Geant4ParticleMap::ParticleMap ParticleMap;
       Manip* manipulator = Geant4HitWrapper::manipulator<Geant4Particle>();
+      G4ParticleTable* table = G4ParticleTable::GetParticleTable();
       const ParticleMap& pm = parts->particles();
       vector<void*> particles;
       particles.reserve(pm.size());
       for ( const auto& i : pm )   {
-        particles.emplace_back((ParticleMap::mapped_type*)i.second);
+	auto* p = i.second;
+	G4ParticleDefinition* def = table->FindParticle(p->pdgID);
+	p->charge = int(3.0 * (def ? def->GetPDGCharge() : -1.0)); // Assume e-/pi-
+        particles.emplace_back((ParticleMap::mapped_type*)p);
       }
       fill("MCParticles",manipulator->vec_type,&particles);
     }
diff --git a/DDG4/src/Geant4ParticleHandler.cpp b/DDG4/src/Geant4ParticleHandler.cpp
index 8295a97d59457dbbf1a822fa936098a2c826c83d..574cbb4bcc322f55a32b3af063e72ed809b8ae0c 100644
--- a/DDG4/src/Geant4ParticleHandler.cpp
+++ b/DDG4/src/Geant4ParticleHandler.cpp
@@ -234,7 +234,7 @@ void Geant4ParticleHandler::begin(const G4Track* track)   {
     m_currTrack.daughters    = prim_part->daughters;
     m_currTrack.pdgID        = prim_part->pdgID;
     m_currTrack.mass         = prim_part->mass;
-    m_currTrack.charge       = prim_part->charge;
+    m_currTrack.charge       = int(3.0 * h.charge());
   }
   else  {
     m_currTrack.id           = m_globalParticleID;