Index: libs/libmythtv/tv_play.cpp
===================================================================
--- libs/libmythtv/tv_play.cpp	(revision 8843)
+++ libs/libmythtv/tv_play.cpp	(working copy)
@@ -4859,17 +4859,27 @@
         }
         else if (tvchain && message.left(12) == "LIVETV_CHAIN")
         {
+            while (!osdlock.tryLock())
+                usleep(2500);
+
             message = message.simplifyWhiteSpace();
             QStringList tokens = QStringList::split(" ", message);
             if (tokens[1] == "UPDATE")
             {
-                if (tokens[2] == tvchain->GetID())
+                if (tvchain && nvp && tokens[2] == tvchain->GetID())
                 {
                     tvchain->ReloadAll();
-                    if (nvp && nvp->GetTVChain())
+                    if (nvp->GetTVChain())
                         nvp->CheckTVChain();
                 }
+                if (piptvchain && pipnvp && tokens[2] == piptvchain->GetID())
+                {
+                    piptvchain->ReloadAll();
+                    if (pipnvp->GetTVChain())
+                        pipnvp->CheckTVChain();
+                }
             }
+            osdlock.unlock();
         }
         else if (nvp && message.left(12) == "EXIT_TO_MENU")
         {
