--- a/libupnpp/control/linnsongcast.cxx
+++ b/libupnpp/control/linnsongcast.cxx
@@ -384,17 +384,26 @@
                                       const vector<string>& rcvs,
                                       vector<string>& reasons)
 {
+    if (rcvs.size() == 0) {
+        return true;
+    }
+
+    reasons.clear();
+    reasons.resize(rcvs.size());
+
     string reason;
     OHSNH sender = getSender(sendernm, reason);
     if (!sender) {
         LOGERR("setReceiversFromSender: " << reason << endl);
+        reasons[0] = reason;
         return false;
     }
     string uri, meta;
     int iret;
     if ((iret = sender->metadata(uri, meta)) != 0) {
-        LOGERR("Can't retrieve sender metadata. Error: " << SoapHelp::i2s(iret)
-               << endl);
+        reasons[0] = string("Can't retrieve sender metadata. Error: ") +
+            SoapHelp::i2s(iret);
+        LOGERR(reasons[0] << endl);
         return false;
     }
 
@@ -406,7 +415,7 @@
     reasons.resize(rcvs.size());
     for (unsigned int i = 0; i < rcvs.size(); i++) {
         auto& sl = rcvs[i];
-        LOGERR("Setting up " << sl << endl);
+        LOGDEB("Setting up " << sl << endl);
         ReceiverState sstate;
         getReceiverState(sl, sstate);
 
@@ -420,7 +429,7 @@
         case ReceiverState::SCRS_PLAYING:
         case ReceiverState::SCRS_NOTRECEIVER:
             if (setReceiverPlaying(sstate, uri, meta)) {
-                LOGERR(sl << " set up for playing " << uri << endl);
+                LOGDEB(sl << " set up for playing " << uri << endl);
             } else {
                 LOGERR(sstate.reason << endl);
                 reasons[i] = sstate.reason;
@@ -441,10 +450,18 @@
                                         const vector<string>& slaves,
                                         vector<string>& reasons)
 {
+    if (slaves.size() == 0) {
+        return true;
+    }
+
+    reasons.clear();
+    reasons.resize(slaves.size());
+
     ReceiverState mstate;
     getReceiverState(masterName, mstate);
     if (mstate.state != ReceiverState::SCRS_PLAYING) {
-        LOGERR("Required master not in Receiver Playing mode" << endl);
+        reasons[0] = "Required master not in Receiver Playing mode";
+        LOGERR(reasons[0] << endl);
         return false;
     }
 
@@ -452,8 +469,6 @@
     //   Product::SetSourceIndex / Receiver::SetSender / Receiver::Play
     // When stopping:
     //   Receiver::Stop / Product::SetStandby
-    reasons.clear();
-    reasons.resize(slaves.size());
     for (unsigned int i = 0; i < slaves.size(); i++) {
         auto& sl(slaves[i]);
         LOGERR("Setting up " << sl << endl);
@@ -472,7 +487,7 @@
             continue;
         case ReceiverState::SCRS_NOTRECEIVER:
             if (setReceiverPlaying(sstate, mstate.uri, mstate.meta)) {
-                LOGERR(sl << " set up for playing " << mstate.uri << endl);
+                LOGDEB(sl << " set up for playing " << mstate.uri << endl);
             } else {
                 LOGERR(sstate.reason << endl);
                 reasons[i] = sstate.reason;