--- a/mpd2src/openaudio.cpp
+++ b/mpd2src/openaudio.cpp
@@ -88,18 +88,19 @@
         }
         LOGDEB("Audioparams: freq " << parms.freq << " bits " << parms.bits <<
                " chans " << parms.chans << endl);
-        struct stat st;
-        if (stat(fn.c_str(), &st)) {
-            LOGERR(" stat() errno: " << errno << " for " << fn << endl);
-            return 0;
+        if (fn.compare("stdin")) {
+            struct stat st;
+            if (stat(fn.c_str(), &st)) {
+                LOGERR(" stat() errno: " << errno << " for " << fn << endl);
+                return 0;
+            }
+            if ((st.st_mode & S_IFMT) != S_IFIFO) {
+                LOGERR("Not a fifo: " << fn << endl);
+                return 0;
+            }
         }
-        if ((st.st_mode & S_IFMT) == S_IFIFO) {
-            return new FifoReader(fn, parms.freq, parms.bits, parms.chans,
-                                  parms.needswap, srcblock);
-        } else {
-            LOGERR("Not a fifo: " << fn << endl);
-            return 0;
-        }
+        return new FifoReader(fn, parms.freq, parms.bits, parms.chans,
+                              parms.needswap, srcblock);
     } else {
         LOGERR("Unprocessed file extension: " << fn.substr(dot) << endl);
         return 0;