diff --git a/Phys/DecayTreeFitter/src/RecoElectronTrack.cpp b/Phys/DecayTreeFitter/src/RecoElectronTrack.cpp
index def03b921320de7b9edc66910af3581cde98ad77..5ca74f279141187960f3192b74ae1d0283ef2507 100644
--- a/Phys/DecayTreeFitter/src/RecoElectronTrack.cpp
+++ b/Phys/DecayTreeFitter/src/RecoElectronTrack.cpp
@@ -249,14 +249,15 @@ namespace DecayTreeFitter {
 
     //++m_itCount;
     if ( m_hasBrem )
-     p.Vfast( 5, 5 ) = sig2 + 0. * p_particle * std::abs( p.r( 5 ) );
+      p.Vfast( 5, 5 ) = sig2 + 0.03 * p_particle * std::abs( p.r( 5 ) );
     else
     //if ( ! m_hasBrem )
-      p.Vfast( 5, 5 ) = ( p.r( 5 ) < 0. ) ? sig2 + 0.4 * p_particle * std::abs( p.r( 5 ) ) : sig2;
+      p.Vfast( 5, 5 ) = ( p.r( 5 ) < 0. ) ? sig2 + 0.20 * p_particle * std::abs( p.r( 5 ) ) : sig2;
     // char const* aboutBrem = m_hasBrem ? "Has Brem" : "No Brem";
     // std::printf( "[%-10s]    C5: %f    iter: %d    sig: %f    modified sig: %f;\n", aboutBrem, p.r( 5 ),
     //m_itCount,
         //             std::sqrt( sig2 ), std::sqrt( p.Vfast( 5, 5 ) ) );
+
     return status;
   }
 } // namespace DecayTreeFitter
diff --git a/Phys/DecayTreeFitter/src/RecoElectronTrack.h b/Phys/DecayTreeFitter/src/RecoElectronTrack.h
index 3144699b2e3405fe47a87e3b74bac572af14daa3..5285af08a7057247f3ed8b52030acaac1623cddf 100644
--- a/Phys/DecayTreeFitter/src/RecoElectronTrack.h
+++ b/Phys/DecayTreeFitter/src/RecoElectronTrack.h
@@ -19,6 +19,21 @@ namespace DecayTreeFitter {
     double m_bremEnergy{0.};
     double m_bremEnergyCov{0.};
     bool   m_hasBrem{false};
+
+    void applyBremCorrectionHack( double bremEnergy, double bremEnergyCov ) {
+    int    charge = m_state.qOverP() > 0 ? 1 : -1;
+    double qop    = m_state.qOverP();
+    double qopnew = 1.0 / ( 1.0 / qop + charge * bremEnergy ); // =  qop / (1 + qop * charge * bremEnergy )
+    // update the m_state
+    m_state.setQOverP( qopnew );
+    // update the covariance matrix (multiply left/right with matrix diag(1,1,1,1,dqopnewdqop)
+    double dqopnewdqop = qopnew * qopnew / ( qop * qop );
+    for ( unsigned int i = 0; i < 4; ++i ) m_state.covariance()( 4, i ) *= dqopnewdqop;
+    m_state.covariance()( 4, 4 ) *= dqopnewdqop * dqopnewdqop;
+    // add the contribution from the bremenergy
+    double dqopnewdbremE = qopnew * qopnew * charge;
+    m_state.covariance()( 4, 4 ) += dqopnewdbremE * dqopnewdbremE * bremEnergyCov;
+  }
     // mutable int m_itCount{0};
   };
 } // namespace DecayTreeFitter