--- a/src/sc2mpd.cpp
+++ b/src/sc2mpd.cpp
@@ -95,7 +95,7 @@
 
 class OhmReceiverDriver : public IOhmReceiverDriver, public IOhmMsgProcessor {
 public:
-    OhmReceiverDriver(AudioEater* eater, int port);
+    OhmReceiverDriver(AudioEater* eater, int port, const string&);
 
 private:
     // IOhmReceiverDriver
@@ -141,10 +141,12 @@
     AudioEater *m_eater;
 };
 
-OhmReceiverDriver::OhmReceiverDriver(AudioEater *eater, int port)
+OhmReceiverDriver::OhmReceiverDriver(AudioEater *eater, int port,
+    const string& ad)
     : m_eater(eater)
 {
     AudioEater::Context *ctxt = new AudioEater::Context(&audioqueue, port);
+    ctxt->alsadevice = ad;
     audioqueue.start(1, m_eater->worker, ctxt);
 }
 
@@ -409,6 +411,8 @@
     if (config.get("schttpport", value)) {
         port = atoi(value.c_str());
     }
+    string alsadevice("default");
+    config.get("scalsadevice", alsadevice);    
     config.get("sclogfilename", logfilename);
     if (config.get("scloglevel", value))
         loglevel = atoi(value.c_str());
@@ -423,7 +427,8 @@
            ((subnet >> 24) & 0xff) << endl);
 
     OhmReceiverDriver* driver = new OhmReceiverDriver(
-        optionDevice.Value() ? &alsaAudioEater : &httpAudioEater, port);
+        optionDevice.Value() ? &alsaAudioEater : &httpAudioEater, port, 
+        alsadevice);
 
     OhmReceiver* receiver = new OhmReceiver(lib->Env(), adapter, ttl, *driver);