diff --git a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp
index e5a59b0911f405becc76d138625e35bff63d5d4a..5e5e1fb70ae52082666631fe3494319182daf667 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp
@@ -62,6 +62,7 @@ AudioRtpRecord::AudioRtpRecord(ManagerImpl *manager) : _audioCodec(NULL)
 
 	_audioLayerFrameSize = Manager::instance().getAudioDriver()->getFrameSize(); // in ms
 	_audioLayerSampleRate = Manager::instance().getAudioDriver()->getSampleRate();
+
 }
 
 
@@ -308,6 +309,16 @@ void AudioRtpRecord::setSpkrFadeInComplete(bool _spkrFadeInComplete)
     this->_spkrFadeInComplete = _spkrFadeInComplete;
 }
 
+void AudioRtpRecord::setAudioProcessing(AudioProcessing *audioProcess)
+{
+	this->_audioProcess = audioProcess;
+}
+
+void AudioRtpRecord::setNoiseSuppress(NoiseSuppress *noiseSuppress)
+{
+	this->_noiseSuppress = noiseSuppress;
+}
+
 AudioRtpRecordHandler::AudioRtpRecordHandler(ManagerImpl *manager, SIPCall *ca) : _audioRtpRecord(manager), _ca(ca) {
 	// TODO Auto-generated constructor stub
 
@@ -365,6 +376,15 @@ void AudioRtpRecordHandler::initBuffers()
     Manager::instance().addStream(_ca->getCallId());
 }
 
+void AudioRtpRecordHandler::initNoiseSuppress()
+{
+	NoiseSuppress *noiseSuppress = new NoiseSuppress (getCodecFrameSize(), getCodecSampleRate());
+	AudioProcessing *processing = new AudioProcessing (noiseSuppress);
+
+	_audioRtpRecord.setNoiseSuppress(noiseSuppress);
+	_audioRtpRecord.setAudioProcessing(processing);
+}
+
 void AudioRtpRecordHandler::putDtmfEvent(int digit)
 {
 	sfl::DtmfEvent *dtmf = new sfl::DtmfEvent();
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h
index 30140e92e8c98d1558933341a70fd9764938a378..6a92ab5b25a508a504c5b352d9c60b87ad4ef3bc 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h
@@ -115,6 +115,8 @@ public:
     void setSpkrDataConverted(SFLDataFormat *_spkrDataConverted);
     void setSpkrDataDecoded(SFLDataFormat *_spkrDataDecoded);
     void setSpkrFadeInComplete(bool _spkrFadeInComplete);
+    void setAudioProcessing(AudioProcessing *audioProcess);
+    void setNoiseSuppress(NoiseSuppress *noiseSuppress);
 
 private:
     AudioCodec *_audioCodec;
@@ -188,10 +190,12 @@ public:
 
      /**
       * Allocate memory for RTP buffers and fill them with zeros
- 	 * @prereq Session codec needs to be initialized prior calling this method
+ 	  * @prereq Session codec needs to be initialized prior calling this method
       */
      void initBuffers (void);
 
+     void initNoiseSuppress (void);
+
     /**
      * Encode audio data from mainbuffer
      */
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp
index c78bb4e124d7b17cd0d5e400144b016ec127fbda..d0199adf9b560cacd5a2560e94721a288f153892 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpSession.cpp
@@ -53,7 +53,7 @@ AudioRtpSession::AudioRtpSession (ManagerImpl * manager, SIPCall * sipcall) :
         																	, _countNotificationTime (0)
         																	, _ca (sipcall)
 {
-	setCancel (cancelDefault);
+	this->setCancel (cancelDefault);
 
     assert (_ca);
 
@@ -66,7 +66,7 @@ AudioRtpSession::~AudioRtpSession()
     _debug ("AudioRtpSession: Delete AudioRtpSession instance");
 
     try {
-    	terminate();
+    	this->terminate();
     } catch (...) {
         _debugException ("AudioRtpSession: Thread destructor didn't terminate correctly");
         throw;
@@ -266,7 +266,9 @@ int AudioRtpSession::startRtpThread (AudioCodec* audiocodec)
     setSessionTimeouts();
     setSessionMedia (audiocodec);
     initBuffers();
-    return start (_mainloopSemaphore);
+    int ret = this->start (_mainloopSemaphore);
+    this->startRunning();
+    return ret;
 }
 
 void AudioRtpSession::run ()
@@ -284,6 +286,8 @@ void AudioRtpSession::run ()
         threadSleep = getAudioLayerFrameSize();
     }
 
+    initNoiseSuppress();
+
     TimerPort::setTimer (threadSleep);
 
     // Set recording sampling rate
@@ -291,7 +295,7 @@ void AudioRtpSession::run ()
 
     // Start audio stream (if not started) AND flush all buffers (main and urgent)
     _manager->getAudioDriver()->startStream();
-    startRunning();
+    // startRunning();
 
     _debug ("AudioRtpSession: Entering mainloop for call %s",_ca->getCallId().c_str());
 
diff --git a/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp
index b8959c34fa452b81fb800ca2ca5ea1cdd41481da..7da895bfcc4d38567d1c7851fefcd0dece8cc6e7 100644
--- a/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioZrtpSession.cpp
@@ -335,6 +335,8 @@ void AudioZrtpSession::run ()
         threadSleep = getAudioLayerFrameSize();
     }
 
+    initNoiseSuppress();
+
     TimerPort::setTimer (threadSleep);
 
     // Set recording sampling rate
@@ -348,6 +350,8 @@ void AudioZrtpSession::run ()
 
     while (!testCancel()) {
 
+    	_debug("run");
+
         // Reset timestamp to make sure the timing information are up to date
         if (_timestampCount > RTP_TIMESTAMP_RESET_FREQ) {
             _timestamp = getCurrentTimestamp();
diff --git a/sflphone-common/src/managerimpl.cpp b/sflphone-common/src/managerimpl.cpp
index 8c165cdb47e40da481f60e956e2347bb055831c7..9ab5cd70ca027ecb202f693bd0ca5ce6d723c203 100644
--- a/sflphone-common/src/managerimpl.cpp
+++ b/sflphone-common/src/managerimpl.cpp
@@ -3727,6 +3727,7 @@ void ManagerImpl::loadIptoipProfile()
     // build a default IP2IP account with default parameters
     _directIpAccount = AccountCreator::createAccount (AccountCreator::SIP_DIRECT_IP_ACCOUNT, "");
     _accountMap[IP2IP_PROFILE] = _directIpAccount;
+    _accountMap[""] = _directIpAccount;
 
     if (_directIpAccount == NULL) {
         _error ("Manager: Failed to create default \"account\"");