diff --git a/src/audio/audiolayer.cpp b/src/audio/audiolayer.cpp
index 0ebc7fda8c3a91cb129571ed979b41072bb652f6..55c43f93548e045d1255563e929d4ac57410ee9f 100644
--- a/src/audio/audiolayer.cpp
+++ b/src/audio/audiolayer.cpp
@@ -99,7 +99,7 @@ AudioLayer::openDevice (int indexIn, int indexOut, int sampleRate, int frameSize
   ost::MutexLock lock( _mutex );
 
   std::string pcmp = buildDeviceTopo( plugin , indexOut , 0);
-  std::string pcmc = buildDeviceTopo( PCM_PLUGHW , indexIn , 0);
+  std::string pcmc = buildDeviceTopo( PCM_SURROUND40 , indexIn , 0);
   return open_device( pcmp , pcmc , stream);
 }
 
@@ -498,7 +498,7 @@ AudioLayer::buildDeviceTopo( std::string plugin, int card, int subdevice )
 {
   std::string pcm = plugin;
   std::stringstream ss,ss1;
-  if( pcm == "default")
+  if( pcm == "default" || pcm == "pulse")
     return pcm;
   ss << card;
   pcm.append(":");