diff --git a/DDG4/lcio/LCIOInputAction.cpp b/DDG4/lcio/LCIOInputAction.cpp
index b952b17b155f54ab058c7a5f4b9c998283635dae..cd95c7e655e061c696d2f91ba71f587f8001fd8f 100644
--- a/DDG4/lcio/LCIOInputAction.cpp
+++ b/DDG4/lcio/LCIOInputAction.cpp
@@ -163,9 +163,11 @@ void LCIOInputAction::operator()(G4Event* event)   {
 
     int genStatus = mcp->getGeneratorStatus();
     if ( genStatus == 0 ) status.set(G4PARTICLE_GEN_EMPTY);
-    if ( genStatus == 1 ) status.set(G4PARTICLE_GEN_STABLE); 
-    if ( genStatus == 2 ) status.set(G4PARTICLE_GEN_DECAYED);
-    if ( genStatus == 3 ) status.set(G4PARTICLE_GEN_DOCUMENTATION);
+    else if ( genStatus == 1 ) status.set(G4PARTICLE_GEN_STABLE); 
+    else if ( genStatus == 2 ) status.set(G4PARTICLE_GEN_DECAYED);
+    else if ( genStatus == 3 ) status.set(G4PARTICLE_GEN_DOCUMENTATION);
+    else { std::cout << " #### WARNING - LCIOInputAction : unknown generator status : " << genStatus << " -> ignored ! " << std::endl ; } 
+
     if ( mcp->isCreatedInSimulation() )       status.set(G4PARTICLE_SIM_CREATED);
     if ( mcp->isBackscatter() )               status.set(G4PARTICLE_SIM_BACKSCATTER);
     if ( mcp->vertexIsNotEndpointOfParent() ) status.set(G4PARTICLE_SIM_PARENT_RADIATED);
diff --git a/DDG4/lcio/LCIOMCParticles.cpp b/DDG4/lcio/LCIOMCParticles.cpp
index 709283155b2582417653159f076a8f305a2e67d8..ead4aad2aeeebad3e630e4ec7d8486531626afd6 100644
--- a/DDG4/lcio/LCIOMCParticles.cpp
+++ b/DDG4/lcio/LCIOMCParticles.cpp
@@ -76,20 +76,36 @@ namespace DD4hep {
 	  const G4ParticleDefinition* def = p->definition;
 	  MYParticleImpl* q = (MYParticleImpl*)new lcio::MCParticleImpl();
 	  q->setPDG(p->pdgID);
-	  q->setMomentum(&p->psx);
-	  q->setVertex(&p->vsx);
-	  q->setEndpoint(&p->vex);
-	  q->setTime(p->time);
-	  q->setMass(p->mass);
+
+	  float ps_fa[3] = { p->psx/GeV, p->psy/GeV, p->psz/GeV } ;  
+	  q->setMomentum( ps_fa );
+
+	  double vs_fa[3] = { p->vsx/mm, p->vsy/mm, p->vsz/mm } ;  
+	  q->setVertex( vs_fa );
+
+	  double ve_fa[3] = { p->vex/mm, p->vey/mm, p->vez/mm } ;  
+	  q->setEndpoint( ve_fa );
+
+	  //q->setMomentum(&p->psx);
+	  //q->setVertex(&p->vsx);
+	  //q->setEndpoint(&p->vex);
+
+
+	  q->setTime(p->time/ns);
+	  q->setMass(p->mass/GeV);
+
+
 	  q->setCharge(def ? def->GetPDGCharge()/3.0 : 0); // Charge(e+) = 1 !
 
 	  // Set generator status
-	  if ( mask.isSet(G4PARTICLE_GEN_EMPTY) ) q->setGeneratorStatus(0);
-	  else if ( mask.isSet(G4PARTICLE_GEN_STABLE) ) q->setGeneratorStatus(1);
+	  //if ( mask.isSet(G4PARTICLE_GEN_EMPTY) ) 
+	  q->setGeneratorStatus(0);
+	  if ( mask.isSet(G4PARTICLE_GEN_STABLE) ) q->setGeneratorStatus(1);
 	  else if ( mask.isSet(G4PARTICLE_GEN_DECAYED) ) q->setGeneratorStatus(2);
 	  else if ( mask.isSet(G4PARTICLE_GEN_DOCUMENTATION) ) q->setGeneratorStatus(3);
 
 	  // Set simulation status
+	  q->setSimulatorStatus( 0 ) ; 
 	  q->setCreatedInSimulation(         mask.isSet(G4PARTICLE_SIM_CREATED) );
 	  q->setBackscatter(                 mask.isSet(G4PARTICLE_SIM_BACKSCATTER) );
 	  q->setVertexIsNotEndpointOfParent( mask.isSet(G4PARTICLE_SIM_PARENT_RADIATED) );
@@ -99,6 +115,10 @@ namespace DD4hep {
 	  q->setStopped(                     mask.isSet(G4PARTICLE_SIM_STOPPED) );
 	  q->setOverlay(                     false );
 
+	  //fg: if simstatus !=0 we have to set the generator status to 0:
+	  if( q->getSimulatorStatus() != 0 ) 
+	    q->setGeneratorStatus( 0 )  ;
+
 	  q->setSpin(p->spin);
 	  q->setColorFlow(p->colorFlow);