Index: libs/libmythtv/remoteutil.cpp
===================================================================
--- libs/libmythtv/remoteutil.cpp	(revision 8381)
+++ libs/libmythtv/remoteutil.cpp	(working copy)
@@ -351,7 +351,7 @@
 {
     QStringList strlist = "QUERY_ISRECORDING";
 
-    if (!gContext->SendReceiveStringList(strlist))
+    if (!gContext->SendReceiveStringList(strlist, false, false))
         return -1;
 
     return strlist[0].toInt();
Index: libs/libmyth/mythcontext.h
===================================================================
--- libs/libmyth/mythcontext.h	(revision 8381)
+++ libs/libmyth/mythcontext.h	(working copy)
@@ -359,7 +361,8 @@
     QPixmap *LoadScalePixmap(QString filename, bool fromcache = true); 
     QImage *LoadScaleImage(QString filename, bool fromcache = true);
 
-    bool SendReceiveStringList(QStringList &strlist, bool quickTimeout = false);
+    bool SendReceiveStringList(QStringList &strlist, bool quickTimeout = false, 
+                               bool block = true);
 
     QImage *CacheRemotePixmap(const QString &url, bool reCache = false);
 
Index: libs/libmyth/mythcontext.cpp
===================================================================
--- libs/libmyth/mythcontext.cpp	(revision 8381)
+++ libs/libmyth/mythcontext.cpp	(working copy)
@@ -2273,12 +2273,15 @@
     ClearSettingsCache(key, newValue);
 }
 
-bool MythContext::SendReceiveStringList(QStringList &strlist, bool quickTimeout)
+bool MythContext::SendReceiveStringList(QStringList &strlist, bool quickTimeout, bool block)
 {
     d->serverSockLock.lock();
     
     if (!d->serverSock)
+    {
         ConnectToMasterServer(false);
+        // should clear popup if it is currently active here. Not sure of the correct way. TBD
+    }
 
     bool ok = false;
     
@@ -2312,15 +2315,20 @@
 
         if (!ok)
         {
+            delete d->serverSock;
+            d->serverSock = NULL;
+
             qApp->lock();
+            if (!block)
+                d->serverSockLock.unlock();
             VERBOSE(VB_ALL, QString("Reconnection to backend server failed"));
             MythPopupBox::showOkPopup(d->mainWindow, "connection failure",
                              tr("The connection to the master backend "
                                 "server has gone away for some reason.. "
                                 "Is it running?"));
 
-            delete d->serverSock;
-            d->serverSock = NULL;
+            if (!block)
+                d->serverSockLock.lock();
             qApp->unlock();
         }
     }    
