I found a precision problem when running geant4.9.6.p02 in windows (Visual C++10). I have an energy 1 MeV that indeed is 0.9999999999999989. Then at G4PhysicsVector::Interpolate } else if( theEnergy >= edgeMax ) { says it is smaller, but at FindBinLocation it is located in the last bin, and when an interpolation is done between this bin and bin+1 it crashes because it is out of range.
The problem has been fixed in the new 10.0 release. The fix will be back-ported to 9.6 in the time of the new patch.