diff --git a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp
index 92cd12ed83f2d01c93d5d6eef11e6c4e641b6fd0..ca19131164c371e5c4e2303c56f5879ecb0dcfcb 100644
--- a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp
+++ b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp
@@ -78,7 +78,7 @@ class Speex : public AudioCodec
             speex_decoder_ctl (_speex_dec_state, SPEEX_GET_FRAME_SIZE, &_speex_frame_size);
 
 
-
+	    /*
 #ifdef HAVE_SPEEXDSP_LIB
 
             int enable = 1;
@@ -101,6 +101,7 @@ class Speex : public AudioCodec
             speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_VAD, &enable);
             speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_AGC, &enable);
 #endif
+	    */
 
         }
 
@@ -136,11 +137,12 @@ class Speex : public AudioCodec
         virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) {
             speex_bits_reset (&_speex_enc_bits);
 
+	    /*
 #ifdef HAVE_SPEEXDSP_LIB
 
             speex_preprocess_run (_preprocess_state, src);
 #endif
-
+	    */
 
             speex_encode_int (_speex_enc_state, src, &_speex_enc_bits);
             int nbBytes = speex_bits_write (&_speex_enc_bits, (char*) dst, size);
diff --git a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp
index 84be794ecaa2940080a83943eec6fb0ad5271d13..738b32331e31163fc7a700cf8581c2df4f5a0331 100644
--- a/sflphone-common/src/audio/codecs/speexcodec_ub.cpp
+++ b/sflphone-common/src/audio/codecs/speexcodec_ub.cpp
@@ -79,6 +79,7 @@ class Speex : public AudioCodec
 
             speex_decoder_ctl (_speex_dec_state, SPEEX_GET_FRAME_SIZE, &_speex_frame_size);
 
+	    /*
 #ifdef HAVE_SPEEXDSP_LIB
 
             int enable = 1;
@@ -100,7 +101,7 @@ class Speex : public AudioCodec
             speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_VAD, &enable);
             speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_AGC, &enable);
 #endif
-
+	    */
         }
 
         ~Speex() {
@@ -135,11 +136,12 @@ class Speex : public AudioCodec
         virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) {
             speex_bits_reset (&_speex_enc_bits);
 
+	    /*
 #ifdef HAVE_SPEEXDSP_LIB
 
             speex_preprocess_run (_preprocess_state, src);
 #endif
-
+	    */
 
             speex_encode_int (_speex_enc_state, src, &_speex_enc_bits);
             speex_bits_nbytes (&_speex_enc_bits);
diff --git a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp
index 19f9da9c67398f836d523e72161e43a8e98e539b..78559ad3faf97ac09991cd76f67d44687695010f 100644
--- a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp
+++ b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp
@@ -77,6 +77,7 @@ class Speex : public AudioCodec
 
             speex_decoder_ctl (_speex_dec_state, SPEEX_GET_FRAME_SIZE, &_speex_frame_size);
 
+	    /*
 #ifdef HAVE_SPEEXDSP_LIB
 
             int enable = 1;
@@ -99,6 +100,7 @@ class Speex : public AudioCodec
             speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_VAD, &enable);
             speex_preprocess_ctl (_preprocess_state, SPEEX_PREPROCESS_SET_AGC, &enable);
 #endif
+	    */
 
         }
 
@@ -135,10 +137,12 @@ class Speex : public AudioCodec
         virtual int codecEncode (unsigned char *dst, short *src, unsigned int size) {
             speex_bits_reset (&_speex_enc_bits);
 
+	    /*
 #ifdef HAVE_SPEEXDSP_LIB
 
             speex_preprocess_run (_preprocess_state, src);
 #endif
+	    */
 
             //printf ("Codec::codecEncode() size %i\n", size);
             speex_encode_int (_speex_enc_state, src, &_speex_enc_bits);
diff --git a/sflphone-common/src/audio/delaydetection.cpp b/sflphone-common/src/audio/delaydetection.cpp
index e8430fd4678b296196903d15d6dc73d83ca8c769..5c6ab4d742644ed469eb6ab426030680173ab82b 100644
--- a/sflphone-common/src/audio/delaydetection.cpp
+++ b/sflphone-common/src/audio/delaydetection.cpp
@@ -223,7 +223,7 @@ void DelayDetection::process(SFLDataFormat *inputData, int nbBytes) {
 
   _debug("MaxIndex: %d", maxIndex);
 
-  reset();
+  // reset();
 }
 
 int DelayDetection::process(SFLDataFormat *intputData, SFLDataFormat *outputData, int nbBytes) { return 0; }
diff --git a/sflphone-common/src/audio/echocancel.cpp b/sflphone-common/src/audio/echocancel.cpp
index e3a84103d0bb89beea8b19a4776a390576bc332e..c733ade3c755b1fd45fee5d5975475f190cb7322 100644
--- a/sflphone-common/src/audio/echocancel.cpp
+++ b/sflphone-common/src/audio/echocancel.cpp
@@ -90,15 +90,17 @@ EchoCancel::EchoCancel(int smplRate, int frameLength) : _samplingRate(smplRate),
   _spkrHistoryLength = SPKR_LENGTH / SEGMENT_LENGTH;
   _nbSegmentPerFrame =  _frameLength / SEGMENT_LENGTH;
 
-#ifdef HAVE_SPEEXDSP_LIB
+  // #ifdef HAVE_SPEEXDSP_LIB
   _noiseState = speex_preprocess_state_init(_smplPerFrame, _samplingRate);
   int i=1;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DENOISE, &i);
-  i=-30;
+  i=-10;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &i);
   i=0;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC, &i);
   i=8000;
+  speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_TARGET, &i);
+  i=16000;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_LEVEL, &i);
   i=0;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB, &i);
@@ -106,7 +108,9 @@ EchoCancel::EchoCancel(int smplRate, int frameLength) : _samplingRate(smplRate),
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_DECAY, &f);
   f=0.0;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_LEVEL, &f);
-#endif
+  i = 0;
+  speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_VAD, &i);
+  // #endif
 
   memset(_avgSpkrLevelHist, 0, BUFF_SIZE*sizeof(int));
   memset(_avgMicLevelHist, 0, BUFF_SIZE*sizeof(int));
@@ -131,9 +135,9 @@ EchoCancel::~EchoCancel()
   delete _spkrData;
   _spkrData = NULL;
 
-#ifdef HAVE_SPEEXDSP_LIB
+  // #ifdef HAVE_SPEEXDSP_LIB
   speex_preprocess_state_destroy(_noiseState);
-#endif
+  // #endif
   
   // micFile->close();
   // spkrFile->close();
@@ -185,17 +189,19 @@ void EchoCancel::reset()
   _spkrData->flushAll();
   _spkrDataOut->flushAll();
 
-#ifdef HAVE_SPEEXDSP_LIB
+  // #ifdef HAVE_SPEEXDSP_LIB
   speex_preprocess_state_destroy(_noiseState);
 
   _noiseState = speex_preprocess_state_init(_smplPerFrame, _samplingRate);
   int i=1;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DENOISE, &i);
-  i=-30;
+  i=-10;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_NOISE_SUPPRESS, &i);
   i=0;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC, &i);
   i=8000;
+  speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_TARGET, &i);
+  i=16000;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_AGC_LEVEL, &i);
   i=0;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB, &i);
@@ -203,7 +209,8 @@ void EchoCancel::reset()
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_DECAY, &f);
   f=0.0;
   speex_preprocess_ctl(_noiseState, SPEEX_PREPROCESS_SET_DEREVERB_LEVEL, &f);
-#endif
+
+  // #endif
 
   _spkrStoped = true;
 
@@ -283,11 +290,12 @@ int EchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData, int
       // micFile->write((const char *)_tmpMic, byteSize);
       // spkrFile->write((const char *)_tmpSpkr, byteSize);
 
-#ifdef HAVE_SPEEXDSP_LIB  
+      // #ifdef HAVE_SPEEXDSP_LIB  
+
       // Remove noise
       if(_noiseActive)
           speex_preprocess_run(_noiseState, _tmpMic);
-#endif
+      // #endif
 
       // Processed echo cancellation
       performEchoCancel(_tmpMic, _tmpSpkr, _tmpOut);
@@ -320,7 +328,6 @@ int EchoCancel::process(SFLDataFormat *inputData, SFLDataFormat *outputData, int
 
   // if spkrAvail is twice the size of a frame discard it, this data is late and won't be used
   if(spkrAvail > (2*byteSize)) {
-      _debug("EchoCancel: Discard echo cancel");
       _spkrData->Discard(spkrAvail-(2*byteSize));
   }
 
diff --git a/sflphone-common/src/audio/echocancel.h b/sflphone-common/src/audio/echocancel.h
index f5725d9141c1b4d097b02c8ee09b5288d879ffe3..e0ceda0445a67dc636a89df8874b21367b6a0c54 100644
--- a/sflphone-common/src/audio/echocancel.h
+++ b/sflphone-common/src/audio/echocancel.h
@@ -364,12 +364,12 @@ class EchoCancel : public Algorithm {
     ofstream *micLevelData;
     ofstream *spkrLevelData;
 
-#ifdef HAVE_SPEEXDSP_LIB
+    // #ifdef HAVE_SPEEXDSP_LIB
     /**
      * Noise reduction processing state
      */
     SpeexPreprocessState *_noiseState;
-#endif
+    // #endif
 
     /**
      * true if noise suppressor is active, false elsewhere