diff --git a/pom.xml b/pom.xml
index c6bd0bd58945688abcd7381214ca6a69ce26eefb..db8bfaaae40afd68b322c68b30ab8c6152135159 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
 
    <groupId>fr.soleil.device</groupId>
    <artifactId>AIControllerV2-${aol}-${mode}</artifactId>
-   <version>2.5.1-SNAPSHOT</version>
+   <version>2.5.2</version>
 
    <packaging>nar</packaging>
    <name>AIControllerV2</name>
@@ -69,11 +69,11 @@
         <groupId>fr.soleil.lib</groupId>
         <artifactId>YAT4Tango-${aol}-${library}-${mode}</artifactId>
      </dependency>
-     <dependency>
-       <groupId>fr.soleil.lib</groupId>
-       <artifactId>NexusCPPV2-${aol}-${library}-${mode}</artifactId>
-     </dependency>
-    <dependency>
+	   <dependency>
+		  <groupId>fr.soleil.lib</groupId>
+		  <artifactId>NexusCPP-${aol}-${library}-${mode}</artifactId>
+       </dependency>
+	 <dependency>
        <groupId>fr.soleil.lib</groupId>
        <artifactId>ASL-${aol}-${library}-${mode}</artifactId>
 	   <version>1.5.0</version>
diff --git a/src/AIController.cpp b/src/AIController.cpp
index 9845d532b1fe7c9ae5f2fa6be0317949b806c852..80bc0a3ab3d4a43f17c44a06517c78c169e2fece 100644
--- a/src/AIController.cpp
+++ b/src/AIController.cpp
@@ -712,6 +712,9 @@ void AIController::read_frequency(Tango::Attribute &attr)
 //-----------------------------------------------------------------------------
 void AIController::write_frequency(Tango::WAttribute &attr)
 {
+SYSTEMTIME start, write;
+GetSystemTime(&start); 
+
   DEBUG_STREAM << "AIController::write_frequency(Tango::WAttribute &attr) entering... "<< endl;
 
   //- check Device state
@@ -740,6 +743,9 @@ void AIController::write_frequency(Tango::WAttribute &attr)
 
   this->m_aiManager->setSamplingRate(freq);
   store_value_as_property(freq, "__Frequency");
+  
+GetSystemTime(&write);
+DEBUG_STREAM << "INSTRU - write_frequency() function took " << 1e3 * (write.wSecond - start.wSecond) + (write.wMilliseconds - start.wMilliseconds) << " ms." << std::endl;
 }
 
 //+----------------------------------------------------------------------------
diff --git a/src/AIManager.cpp b/src/AIManager.cpp
index ea6dfc0615f242543b948a82f2f293aca5fe60ed..64f4d3fd98539e31e22e13ecf2e5de8be7b2333c 100644
--- a/src/AIManager.cpp
+++ b/src/AIManager.cpp
@@ -915,6 +915,10 @@ void AIManager::checkSamplesNumber()
 void AIManager::setSamplingRate(double rate)
   throw (Tango::DevFailed)
 {
+SYSTEMTIME start, write, temp1, temp2, temp3;
+GetSystemTime(&start); 
+DEBUG_STREAM << "AIManager::setSamplingRate() entering... "<< endl;
+
   yat::AutoMutex<> guard(this->m_freqLock);
   
   //- save current frequency value
@@ -927,11 +931,12 @@ void AIManager::setSamplingRate(double rate)
   bool restart_acquisition = false;
   if (this->m_currentAcquisition->getAcqState() == Tango::RUNNING)
   {
+    DEBUG_STREAM << "AIManager::setSamplingRate: stop acquisition before changing frequency... "<< endl;
     try
     {
       this->m_currentAcquisition->stopAcquisition();
       restart_acquisition = true;
-
+	  
       // sleep a while for history finalization
       yat::Thread::sleep(500);
     }
@@ -951,9 +956,12 @@ void AIManager::setSamplingRate(double rate)
       THROW_DEVFAILED(_CPTC("UNKNOWN_ERROR"),
                       _CPTC("Failed to stop acquisition (caught [...])!"),
                       _CPTC("AIManager::setSamplingRate"));
-    }
+    }	
   }
 
+GetSystemTime(&temp1);
+DEBUG_STREAM << "INSTRU - setSamplingRate - stopping current acquisition (if needed) took " << 1e3 * (temp1.wSecond - start.wSecond) + (temp1.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; 
+
   //- set new sampling rate
   try
   {
@@ -981,6 +989,10 @@ void AIManager::setSamplingRate(double rate)
                     _CPTC("AIManager::setSamplingRate"));
   }
 
+
+GetSystemTime(&temp2);
+DEBUG_STREAM << "INSTRU - setSamplingRate - set new sampling rate took " << 1e3 * (temp2.wSecond - temp1.wSecond) + (temp2.wMilliseconds - temp1.wMilliseconds) << " ms." << std::endl; 
+  
   //- restart acquisition if previously stopped
   if (restart_acquisition)
   {
@@ -1038,6 +1050,12 @@ void AIManager::setSamplingRate(double rate)
                       _CPTC("AIManager::setSamplingRate"));
     }
   }
+
+GetSystemTime(&temp3);
+DEBUG_STREAM << "INSTRU - setSamplingRate - restarting acquisition (if needed) took " << 1e3 * (temp3.wSecond - temp2.wSecond) + (temp3.wMilliseconds - temp2.wMilliseconds) << " ms." << std::endl; 
+  
+GetSystemTime(&write);
+DEBUG_STREAM << "INSTRU - setSamplingRate() function took " << 1e3 * (write.wSecond - start.wSecond) + (write.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; 
 }
 
 // ======================================================================
diff --git a/src/AcqMode.cpp b/src/AcqMode.cpp
index aa1d735285981ebfaaddeba67c1dbfa2007787dd..6548338b3b2af23a17782509f1ce4e2cde41d01d 100644
--- a/src/AcqMode.cpp
+++ b/src/AcqMode.cpp
@@ -779,6 +779,10 @@ void AcqMode::abortAcquisition()
 void AcqMode::setSamplingRate(double rate)
   throw (Tango::DevFailed)
 {
+SYSTEMTIME start, write, temp1, temp2, temp3, temp4;
+GetSystemTime(&start); 
+DEBUG_STREAM << "AcqMode::setSamplingRate() entering... "<< endl;
+
   // reinit error management
   this->m_errorMsg = "";
   this->m_errorOccurred = false;
@@ -821,13 +825,19 @@ void AcqMode::setSamplingRate(double rate)
       _CPTC("AcqMode::setSamplingRate"));
   }
 
+GetSystemTime(&temp1);
+DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - computing new buffer depth took " << 1e3 * (temp1.wSecond - start.wSecond) + (temp1.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; 
+  
   this->m_daqConfig.set_sampling_rate(rate);
-	this->m_daqConfig.set_buffer_depth(depth);
+  this->m_daqConfig.set_buffer_depth(depth);
 
   // re-allocate memory for raw & scaled data buffers
   this->unsetDataBufferMem();
   this->setDataBufferMem(this->m_daqConfig.get_buffer_depth());
 
+GetSystemTime(&temp2);
+DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - configuring local buffers took " << 1e3 * (temp2.wSecond - temp1.wSecond) + (temp2.wMilliseconds - temp1.wMilliseconds) << " ms." << std::endl; 
+  
   // call ContinuousAI::configure()
   try
   {
@@ -854,6 +864,9 @@ void AcqMode::setSamplingRate(double rate)
                     _CPTC("AcqMode::setSamplingRate"));
   }
 
+GetSystemTime(&temp3);
+DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - configuring ASL buffers took " << 1e3 * (temp3.wSecond - temp2.wSecond) + (temp3.wMilliseconds - temp2.wMilliseconds) << " ms." << std::endl; 
+  
   // set my local current acquisition data
   this->m_acquisitionParam.frequency = rate;
 
@@ -877,8 +890,15 @@ void AcqMode::setSamplingRate(double rate)
   // data buffer depth could have changed
   if (this->m_dataTrt.hasMask)
   {
+DEBUG_STREAM << "AcqMode::setSamplingRate() : configure data mask " << std::endl;
     this->setBoolDataMask(this->m_dataTrt.timeSlotMask);
   }
+  
+GetSystemTime(&temp4);
+DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - setting data history & mask took " << 1e3 * (temp4.wSecond - temp3.wSecond) + (temp4.wMilliseconds - temp3.wMilliseconds) << " ms." << std::endl; 
+
+GetSystemTime(&write);
+DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate() function took " << 1e3 * (write.wSecond - start.wSecond) + (write.wMilliseconds - start.wMilliseconds) << " ms." << std::endl;  
 }