diff --git a/debian/autopackage.sh b/debian/autopackage.sh
index fe8a9e5be4c1a7163dada8f1090128e12181ff8c..73a833b0b8aff16d7076080abb516922074e49dd 100755
--- a/debian/autopackage.sh
+++ b/debian/autopackage.sh
@@ -54,12 +54,12 @@ cp $sharedir/applications/sflphone.desktop $sfldir$sharedir/applications/
 #/usr/share/dbus-1/services
 mkdir -p $sfldir$sharedir/dbus-1/services
 cp $sharedir/dbus-1/services/org.sflphone.SFLphone.service $sfldir$sharedir/dbus-1/services/
-#/usr/share/pixmaps
+/usr/share/pixmaps
 mkdir -p $sfldir$sharedir/pixmaps
 cp $sharedir/pixmaps/sflphone.png $sfldir$sharedir/pixmaps
 #/usr/share/sflphone
 mkdir -p $sfldir$sharedir/sflphone/ringtones
-cp $sharedir/sflphone/*.svg $sfldir$sharedir/sflphone
+cp $sharedir/sflphone/* $sfldir$sharedir/sflphone
 #/usr/share/sflphone/ringtones
 cp $sharedir/sflphone/ringtones/* $sfldir$sharedir/sflphone/ringtones
 #/usr/share/locale/fr/LC_MESSAGES
diff --git a/debian/changelog.Debian.gz b/debian/changelog.Debian.gz
index e8bf4d0dd2a4ac6ee239941c03505de95611661e..acd4e1302bfdaf685b3b5324ea135ca24b7dc864 100644
Binary files a/debian/changelog.Debian.gz and b/debian/changelog.Debian.gz differ
diff --git a/sflphone-gtk/src/calltree.c b/sflphone-gtk/src/calltree.c
index a1386191fbdec81bd61d856bc62baeaab65ca32c..85d7599c88a6e064f72069436ad70fcf65ee6f27 100644
--- a/sflphone-gtk/src/calltree.c
+++ b/sflphone-gtk/src/calltree.c
@@ -361,7 +361,7 @@ create_toolbar ()
 	g_signal_connect (G_OBJECT (unholdButton), "clicked",
 			G_CALLBACK (unhold), NULL);
 	//gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(unholdButton), -1);
-	//gtk_widget_show_all(GTK_WIDGET(unholdButton));
+	gtk_widget_show_all(GTK_WIDGET(unholdButton));
 
 	image = gtk_image_new_from_file( ICONS_DIR "/hold.svg");
 	holdButton =  gtk_tool_button_new (image, _("On Hold"));
diff --git a/src/audio/audiolayer.cpp b/src/audio/audiolayer.cpp
index fa93ee08f6064271a5ac60c772350fed3e2d7c70..d799939335b1e22cda5456a85532f8bd12885c79 100644
--- a/src/audio/audiolayer.cpp
+++ b/src/audio/audiolayer.cpp
@@ -302,7 +302,7 @@ AudioLayer::open_device(std::string pcm_p, std::string pcm_c, int flag)
   snd_pcm_uframes_t buffer_size_out = period_size_out * 4 ;
 
   unsigned int buffer_time = 80000; //80ms
-  unsigned int period_time = buffer_time / 4; //20ms
+  unsigned int period_time = buffer_time / 4 ; //20ms
 
   if(flag == SFL_PCM_BOTH || flag == SFL_PCM_CAPTURE)
   {
@@ -330,6 +330,19 @@ AudioLayer::open_device(std::string pcm_p, std::string pcm_c, int flag)
     _debug("buffer size = %d\n" , period_size_in);
     _debug("period size = %d\n" , buffer_size_in);
     snd_pcm_hw_params_free( hwParams );
+
+    snd_pcm_uframes_t val ;
+    snd_pcm_sw_params_malloc( &swparams );
+    snd_pcm_sw_params_current( _CaptureHandle, swparams );
+
+    if( err = snd_pcm_sw_params_set_start_threshold( _CaptureHandle, swparams, period_size_out) < 0 ) _debugAlsa(" Cannot set start threshold (%s)\n", snd_strerror(err)); 
+    snd_pcm_sw_params_get_start_threshold( swparams , &val);
+    _debug("Start threshold = %d\n" ,val);
+    if( err = snd_pcm_sw_params_set_avail_min( _CaptureHandle, swparams, period_size_out) < 0) _debugAlsa(" Cannot set min avail (%s)\n" , snd_strerror(err)); 
+    snd_pcm_sw_params_get_avail_min( swparams , &val);
+    _debug("Min available = %d\n" ,val);
+    if( err = snd_pcm_sw_params( _CaptureHandle, swparams ) < 0 ) _debugAlsa(" Cannot set sw parameters (%s)\n", snd_strerror(err)); 
+    snd_pcm_sw_params_free( swparams );
     deviceClosed = false;
   }
 
@@ -348,6 +361,7 @@ AudioLayer::open_device(std::string pcm_p, std::string pcm_c, int flag)
     }
     if( err = snd_pcm_hw_params_any( _PlaybackHandle,hwParams) < 0) _debugAlsa(" Cannot initialize hardware parameter structure (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_access( _PlaybackHandle, hwParams, SND_PCM_ACCESS_MMAP_INTERLEAVED) < 0) _debugAlsa(" Cannot set access type (%s)\n", snd_strerror(err));
+    //if( err = snd_pcm_hw_params_set_access( _PlaybackHandle, hwParams, SND_PCM_ACCESS_RW_INTERLEAVED) < 0) _debugAlsa(" Cannot set access type (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_format( _PlaybackHandle, hwParams, SND_PCM_FORMAT_S16_LE) < 0) _debugAlsa(" Cannot set sample format (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_rate( _PlaybackHandle, hwParams, rate_out, dir) < 0) _debugAlsa(" Cannot set sample rate (%s)\n", snd_strerror(err));
     if( err = snd_pcm_hw_params_set_channels( _PlaybackHandle, hwParams, 1) < 0) _debugAlsa(" Cannot set channel count (%s)\n", snd_strerror(err));
@@ -441,6 +455,7 @@ AudioLayer::read( void* buffer, int toCopy)
       case EPERM:
 	_debugAlsa(" Capture EPERM (%s)\n", snd_strerror(err));
 	snd_pcm_prepare( _CaptureHandle);
+	snd_pcm_start( _CaptureHandle );
 	break;
       case -ESTRPIPE:
 	_debugAlsa(" Capture ESTRPIPE (%s)\n", snd_strerror(err));
diff --git a/src/global.h b/src/global.h
index 350a37e5ee98c32be3f1c6638454637c9c5d572b..af95fbc6dd8bfd9cb407825c127d60050d500490 100644
--- a/src/global.h
+++ b/src/global.h
@@ -83,6 +83,7 @@ typedef short int16;
 #define PCM_FRONT	"plug:front"		/** Alsa plugin: front PCM */	
 #define PCM_DEFAULT	"default"		/** Default ALSA plugin */
 #define PCM_DMIX	"plug:dmix"		/** Alsa plugin for software mixing */
+#define PCM_DSNOOP	"plug:dsnoop"		/** Alsa plugin for software mixing */
 #define PCM_SURROUND40	"plug:surround40"	/** Alsa plugin: surround40 */
 #define PCM_SURROUND41	"plug:surround41"	/** Alsa plugin: surround41 */
 #define PCM_SURROUND50	"plug:surround50"	/** Alsa plugin: surround50 */
diff --git a/src/managerimpl.cpp b/src/managerimpl.cpp
index 29a641ff5f49a4350a950ad71a69478be3a68e4f..26f4dc9852f31a4ff0dc6182f680a3c7ba3aea26 100644
--- a/src/managerimpl.cpp
+++ b/src/managerimpl.cpp
@@ -1145,6 +1145,7 @@ ManagerImpl::getOutputAudioPluginList(void)
   v.push_back( PCM_DEFAULT );
   v.push_back( PCM_PLUGHW );
   v.push_back( PCM_DMIX );
+  v.push_back( PCM_PULSE );
 
   return v;
 }