diff --git a/mythtv/libs/libmythbase/mythsocket.cpp b/mythtv/libs/libmythbase/mythsocket.cpp
index 77538f6..f1c8d86 100644
--- a/mythtv/libs/libmythbase/mythsocket.cpp
+++ b/mythtv/libs/libmythbase/mythsocket.cpp
@@ -346,11 +346,13 @@ bool MythSocket::SendReceiveStringList(
         return false;
     }
 
+#if 0
     if (!strlist.empty() && strlist[0] == "BACKEND_MESSAGE")
     {
         LOG(VB_GENERAL, LOG_ERR, LOC + "Got MythEvent on non-event socket");
         return false;
     }
+#endif
 
     return true;
 }
diff --git a/mythtv/programs/mythbackend/playbacksock.cpp b/mythtv/programs/mythbackend/playbacksock.cpp
index 65a49ac..cdb1e3d 100644
--- a/mythtv/programs/mythbackend/playbacksock.cpp
+++ b/mythtv/programs/mythbackend/playbacksock.cpp
@@ -82,7 +82,23 @@ bool PlaybackSock::SendReceiveStringList(
     {
         QMutexLocker locker(&sockLock);
         expectingreply = true;
+
         ok = sock->SendReceiveStringList(strlist);
+        while (ok && strlist[0] == "BACKEND_MESSAGE")
+        {
+            // oops, not for us
+            if (strlist.size() >= 2)
+            {
+                QString message = strlist[1];
+                strlist.pop_front();
+                strlist.pop_front();
+                MythEvent me(message, strlist);
+                gCoreContext->dispatch(me);
+            }
+
+            ok = sock->ReadStringList(strlist);
+        }
+
         expectingreply = false;
     }
 
