diff --git a/configure.ac b/configure.ac
index d85ec82a1c7261eb8876b57e76d0333024418c37..bb4c7bf3c03e0c225b0198c419ea830f9454bf32 100644
--- a/configure.ac
+++ b/configure.ac
@@ -163,6 +163,23 @@ fi
 sflphone_datadir=$datadir/sflphone
 AC_SUBST(sflphone_datadir)
 
+
+AC_MSG_CHECKING([whether to enable the maintener code])
+AC_ARG_ENABLE(maintener,
+[  --enable-maintener      Enable maintener code [default=no]],
+[
+CXXFLAGS="$CXXFLAGS -DENABLE_MAINTENER"
+AC_MSG_RESULT(yes)
+maintener="yes"
+],
+[
+AC_MSG_RESULT(no)
+maintener="no"
+]
+)
+AM_CONDITIONAL(MAINTENER_CODE, test x$maintener = xyes)
+
+
 AC_SUBST(LIB_DNSSD)
 AM_CONDITIONAL(USE_ZEROCONF, test "$have_libdns_sd" = "yes")	
 
diff --git a/src/audio/Makefile.am b/src/audio/Makefile.am
index d0fe8c8ee36d30c027cb4713b65f3bd3039faa86..cbfb5d282e88e02216d58a2ca0cda098e34e66f2 100644
--- a/src/audio/Makefile.am
+++ b/src/audio/Makefile.am
@@ -1,4 +1,8 @@
-SUBDIRS = gsm pacpp OpenAL
+if MAINTENER_CODE
+maintener_directories = OpenAL
+endif
+
+SUBDIRS = gsm pacpp ${maintener_directories}
 
 noinst_LTLIBRARIES = libaudio.la
 
diff --git a/src/audio/OpenAL/OpenALLayer.cpp b/src/audio/OpenAL/OpenALLayer.cpp
index 8d3130defdd744becb3bb324dcfa859bcfb6336f..a3977a675fc03ed2dcab8bafaefea4fe7a83eeae 100644
--- a/src/audio/OpenAL/OpenALLayer.cpp
+++ b/src/audio/OpenAL/OpenALLayer.cpp
@@ -26,6 +26,8 @@
 #include <AL/al.h>
 #include <AL/alc.h>
 
+#define DEFAULT_DEVICE_NAME "default"
+
 SFLAudio::OpenALLayer::OpenALLayer() 
   : AudioLayer("openal")
 {}
@@ -42,6 +44,10 @@ SFLAudio::OpenALLayer::getDevicesNames()
       devname += sizeof(ALCchar) * (strlen(devname) + 1);
     }
   }
+  else {
+    devices.push_back(DEFAULT_DEVICE_NAME);
+  }
+  
 
   return devices;
 
@@ -51,7 +57,10 @@ SFLAudio::Device *
 SFLAudio::OpenALLayer::openDevice()
 {
   Device *dev = new OpenALDevice();
-  if(dev->load() == false) {
+  if(dev->load()) {
+    dev->setName(DEFAULT_DEVICE_NAME);
+  }
+  else {
     delete dev;
     dev = new NullDevice();
   }