diff --git a/PwaUtils/BreitWignerDynamics.hh b/PwaUtils/BreitWignerDynamics.hh
index 5f311440a1f4101af5679af44a0229081017725b..b2cbd7fd3ca19cf20e1a27a3453b9dda2cb9ec06 100644
--- a/PwaUtils/BreitWignerDynamics.hh
+++ b/PwaUtils/BreitWignerDynamics.hh
@@ -53,7 +53,6 @@ protected:
 
   double _currentMass;
   double _currentWidth;
-  std::map<int, complex<double> >  _cachedMap; 
 
 private:
 
diff --git a/PwaUtils/KMatrixDynamics.hh b/PwaUtils/KMatrixDynamics.hh
index 4b2a670cb9283b45009fd3bc085223257aac8da3..b5b77820290194c354cfdc31fcbef5b583025763 100644
--- a/PwaUtils/KMatrixDynamics.hh
+++ b/PwaUtils/KMatrixDynamics.hh
@@ -65,7 +65,6 @@ protected:
   int _orderKMatBg;
   bool _withKMatAdler;
   double _currentMass;
-  std::map<int, complex<double> >  _cachedMap;
   std::map<std::string, std::shared_ptr<AbsXdecAmp> >  _grandMaAmpMap;
   
   std::shared_ptr<KMatrixRel> _kMatr;
diff --git a/PwaUtils/KPiSWaveIso12Dynamics.hh b/PwaUtils/KPiSWaveIso12Dynamics.hh
index ba79a70fdbeef40c68deb0be0144e439f2ae88ac..9079b01d2302127b5a34a7be985a47a8bbe7c509 100644
--- a/PwaUtils/KPiSWaveIso12Dynamics.hh
+++ b/PwaUtils/KPiSWaveIso12Dynamics.hh
@@ -58,7 +58,6 @@ public:
 protected:
   //  std::string _massKey;
   double _currentMass;
-  std::map<int, complex<double> >  _cachedMap;
   std::map<std::string, std::shared_ptr<AbsXdecAmp> >  _grandMaAmpMap;
 
   std::shared_ptr<KMatrixKPiSFocus> _kMatr;
diff --git a/PwaUtils/PiPiSWaveASDynamics.cc b/PwaUtils/PiPiSWaveASDynamics.cc
index 46e25caf57694734721b2c1cf9b48790ca0b86aa..b7f15e17880c85c42fee1a8c43a80d61350bf110 100644
--- a/PwaUtils/PiPiSWaveASDynamics.cc
+++ b/PwaUtils/PiPiSWaveASDynamics.cc
@@ -72,8 +72,9 @@ complex<double> result(0.,0.);
  
   bool readFromCachedMap=false;
 
+  theMutex.lock();
   if( _cacheAmps){
-    if(_recalcMap[currentKey]){
+    if(_recalcMap.at(currentKey)){
       bool currentEvtAlreadyCached=false;
       
       std::map<int, std::map<std::string, bool > >::iterator itAlreadyCached=_alreadyCached.find(evtNo);
@@ -83,15 +84,11 @@ complex<double> result(0.,0.);
 	  currentEvtAlreadyCached=itAlreadyCached2->second;     
 	}
 	else{
-	  theMutex.lock();
-	  _alreadyCached[evtNo][currentKey]=false;
-	  theMutex.unlock();
+	  _alreadyCached.at(evtNo)[currentKey]=false;
 	}   
       }
       else{ 
-	theMutex.lock();
 	_alreadyCached[evtNo][currentKey]=false;
-	theMutex.unlock();
       } 
   
       if(currentEvtAlreadyCached) readFromCachedMap=true;
@@ -103,15 +100,14 @@ complex<double> result(0.,0.);
     result=_cachedStringMap.at(evtNo).at(currentKey);
   }  
   else{
-      theMutex.lock();
       result=_fVecMap[currentKey]->evalProjMatrix(theData->DoubleString.at(_dynKey), _projectionIndex);
       if ( _cacheAmps){
 	_cachedStringMap[evtNo][currentKey]=result;
 	_alreadyCached.at(evtNo).at(currentKey)=true;
       }
-      theMutex.unlock();
   }
-  //  Info << "result: " << result << endmsg;  
+  theMutex.unlock();
+  
   return result;
 }
 
diff --git a/PwaUtils/PiPiSWaveASDynamics.hh b/PwaUtils/PiPiSWaveASDynamics.hh
index 868fd6e477c6ca48c7b10eae9379715a18e6a3ef..13d173513412fa419a181b9d9c151a04f7bc8f99 100644
--- a/PwaUtils/PiPiSWaveASDynamics.hh
+++ b/PwaUtils/PiPiSWaveASDynamics.hh
@@ -62,7 +62,6 @@ protected:
   virtual int projectionIndex(std::vector<Particle*>& fsParticles);
 
   double _currentMass;
-  std::map<int, complex<double> >  _cachedMap;
   std::map<std::string, std::shared_ptr<AbsXdecAmp> >  _grandMaAmpMap;
 
   std::map<std::string, std::shared_ptr<FVector> > _fVecMap;