diff --git a/daemon/src/audio/audiolayer.cpp b/daemon/src/audio/audiolayer.cpp
index 354a1857447af9d4e6a9f7b3a857b0c79659fad2..af4c01df1d75fdd6b5199f7c320c14638c80579f 100644
--- a/daemon/src/audio/audiolayer.cpp
+++ b/daemon/src/audio/audiolayer.cpp
@@ -35,8 +35,7 @@
 #include "manager.h"
 
 AudioLayer::AudioLayer (int type)
-    : layerType_ (type)
-    , isStarted_ (false)
+    : isStarted_ (false)
     , urgentRingBuffer_ (SIZEBUF, Call::DEFAULT_ID)
     , recorder_ (0)
     , indexIn_ (0)
@@ -49,6 +48,7 @@ AudioLayer::AudioLayer (int type)
     , errorMessage_ (0)
     , mutex_ ()
 	, audioPref(Manager::instance().audioPreference)
+	, layerType_ (type)
     , lastNotificationTime_ (0)
 {}
 
diff --git a/daemon/src/audio/audiolayer.h b/daemon/src/audio/audiolayer.h
index 20e5458f101f6fd517627ad577fa031197c5c977..3f9b99d4052100f80a2593a1f3070c5de7e25f9a 100644
--- a/daemon/src/audio/audiolayer.h
+++ b/daemon/src/audio/audiolayer.h
@@ -224,8 +224,6 @@ class AudioLayer
 
     protected:
 
-        int layerType_;
-
         /**
          * Drop the pending frames and close the capture device
          */
@@ -301,6 +299,10 @@ class AudioLayer
         AudioPreference &audioPref;
 
     private:
+
+        const int layerType_;
+
+
         /**
          * Time of the last incoming call notification
          */
diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp
index 38e552dd5d536fc980680f2113f137bf503fdf83..0c928452f6e953dcdb4c04080ea281c4c6618852 100644
--- a/daemon/src/managerimpl.cpp
+++ b/daemon/src/managerimpl.cpp
@@ -2628,9 +2628,9 @@ void ManagerImpl::audioSamplingRateChanged (int samplerate)
 
     delete _audiodriver;
     if (type == PULSEAUDIO)
-    	_audiodriver = new PulseLayer;
-    else
     	_audiodriver = new AlsaLayer;
+    else
+    	_audiodriver = new PulseLayer;
 
     _audiodriver->openDevice (numCardIn, numCardOut, numCardRing, samplerate, framesize,
                               SFL_PCM_BOTH, alsaPlugin);