diff --git a/PwaUtils/LSDecNonRefAmps.cc b/PwaUtils/LSDecNonRefAmps.cc
index 33c82859eba7a07ac119950aa879b2aa55f4ef1d..307450d0bcb1343434467ce635679abb4bc6bf13 100644
--- a/PwaUtils/LSDecNonRefAmps.cc
+++ b/PwaUtils/LSDecNonRefAmps.cc
@@ -148,6 +148,13 @@ complex<double> LSDecNonRefAmps::lsLoop(AbsXdecAmp* grandmaAmp, Spin& lamX, EvtD
   complex<double> result(0.,0.);
 
   std::vector< std::shared_ptr<const LScomb> >::iterator it;
+  std::map< std::shared_ptr<const LScomb>,  complex<double> > dynLSs;
+  if (_absDyn->isLdependent()){ 
+    for (it=_LSs.begin(); it!=_LSs.end(); ++it){
+      dynLSs[*it]=_absDyn->eval(theData, grandmaAmp, (*it)->L);
+    }
+  }
+
   std::map<Id3StringType, complex<double> >& currentWignerDMap=theData->WignerDStringId.at(_wignerDKey);
 
   for(Spin lambda1=lam1Min; lambda1<=lam1Max; ++lambda1){
@@ -161,7 +168,9 @@ complex<double> LSDecNonRefAmps::lsLoop(AbsXdecAmp* grandmaAmp, Spin& lamX, EvtD
 	double theMag=_currentParamMags.at(*it);
 	double thePhi=_currentParamPhis.at(*it);
 	complex<double> expi(cos(thePhi), sin(thePhi));
-	if (_absDyn->isLdependent()) amp+=theMag*expi*_cgPreFactor.at(*it).at(lambda1).at(lambda2)*_absDyn->eval(theData, grandmaAmp, (*it)->L);
+	// if (_absDyn->isLdependent()) amp+=theMag*expi*_cgPreFactor.at(*it).at(lambda1).at(lambda2)*_absDyn->eval(theData, grandmaAmp, (*it)->L);
+	// else amp+=theMag*expi*_cgPreFactor.at(*it).at(lambda1).at(lambda2);
+	if (_absDyn->isLdependent()) amp+=theMag*expi*_cgPreFactor.at(*it).at(lambda1).at(lambda2)*dynLSs.at(*it);
 	else amp+=theMag*expi*_cgPreFactor.at(*it).at(lambda1).at(lambda2);
       }
       Id3StringType IdJLamXLam12=FunctionUtils::spin3Index(_J, lamX, lambda);