diff --git a/Reconstruction/Jet/JetMomentTools/Root/JetCaloEnergies.cxx b/Reconstruction/Jet/JetMomentTools/Root/JetCaloEnergies.cxx
index 6fa162865d308305cb0df1a6b3009cd4b09410bb..7fd54eff1b454d77cd2f993d4e590e16c08ad389 100644
--- a/Reconstruction/Jet/JetMomentTools/Root/JetCaloEnergies.cxx
+++ b/Reconstruction/Jet/JetMomentTools/Root/JetCaloEnergies.cxx
@@ -90,9 +90,10 @@ void JetCaloEnergies::fillEperSamplingPFO(xAOD::Jet & jet, std::vector<float> &
   for ( size_t i=0; i<numConstit; i++ ) {
     if (jet.rawConstituent(i)->type()==xAOD::Type::ParticleFlow){
       const xAOD::PFO* constit = static_cast<const xAOD::PFO*>(jet.rawConstituent(i));
-      eTot += constit->eEM();
-      if (0 == constit->charge()){
-
+      if ( fabs(constit->charge())>FLT_MIN ){
+	eTot += constit->track(0)->e();
+      } else {
+	eTot += constit->eEM();
 	FillESamplingPFO(PreSamplerB);
 	FillESamplingPFO(EMB1);
 	FillESamplingPFO(EMB2);