diff --git a/sflphone-common/src/audio/alsa/alsalayer.cpp b/sflphone-common/src/audio/alsa/alsalayer.cpp
index a05eef17780b702cb48c03cabd5ae16a09730dcf..a636de6840b6ca57b68e1fe6fe916f2c493313e0 100644
--- a/sflphone-common/src/audio/alsa/alsalayer.cpp
+++ b/sflphone-common/src/audio/alsa/alsalayer.cpp
@@ -52,6 +52,7 @@ AlsaLayer::AlsaLayer (ManagerImpl* manager)
     , _is_open_capture (false)
     , _trigger_request (false)
     , _audioThread (NULL)
+    , _converter (0)
 
 {
     _debug ("Audio: Build ALSA layer");
@@ -132,7 +133,7 @@ AlsaLayer::openDevice (int indexIn, int indexOut, int indexRing, int sampleRate,
     _converter = new SamplerateConverter (_audioSampleRate);
 
     AudioLayer::_dcblocker = new DcBlocker();
-    AudioLayer::_audiofilter = new AudioProcessing (static_cast<Algorithm *> (_dcblocker));
+    AudioLayer::_audiofilter = new AudioProcessing (_dcblocker);
 }
 
 void
diff --git a/sflphone-common/src/audio/audiolayer.h b/sflphone-common/src/audio/audiolayer.h
index eb83ed7ffd5387b9340cfbdd9a31eaee4fd5cfdb..55eb4c9b7f64032e2a93f7f1e1c8348f49447ef1 100644
--- a/sflphone-common/src/audio/audiolayer.h
+++ b/sflphone-common/src/audio/audiolayer.h
@@ -82,6 +82,8 @@ class AudioLayer
             , _outChannel (1)
             , _errorMessage (0)
             , _mutex ()
+            , _dcblocker(0)
+            , _audiofilter(0)
         	, _countNotificationTime(0)
             , _time (new ost::Time()) {
 
diff --git a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
index 9cd8269f3c83f552454ed4322bc41ee14ed066bc..dbc3457b04215abe4fa9cad72cf2d1f8350c726d 100644
--- a/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
+++ b/sflphone-common/src/audio/pulseaudio/pulselayer.cpp
@@ -237,6 +237,7 @@ PulseLayer::PulseLayer (ManagerImpl* manager)
     , playback (NULL)
     , record (NULL)
     , ringtone (NULL)
+    , _converter(0)
 {
     _urgentRingBuffer.createReadPointer();