Index: programs/mythbackend/mainserver.h
===================================================================
--- programs/mythbackend/mainserver.h	(revision 20658)
+++ programs/mythbackend/mainserver.h	(working copy)
@@ -56,6 +56,9 @@
     void deferredDeleteSlot(void);
     void autoexpireUpdate(void);
 
+  signals:
+    void masterConnectionLost(void);
+
   private slots:
     void newConnection(MythSocket *);
 
Index: programs/mythbackend/mainserver.cpp
===================================================================
--- programs/mythbackend/mainserver.cpp	(revision 20658)
+++ programs/mythbackend/mainserver.cpp	(working copy)
@@ -204,6 +204,8 @@
         masterServerReconnect->setSingleShot(true);
         connect(masterServerReconnect, SIGNAL(timeout()), this,
                 SLOT(reconnectTimeout()));
+        connect(this, SIGNAL(masterConnectionLost(void)), this,
+                SLOT(reconnectTimeout()));
         masterServerReconnect->start(1000);
     }
 
@@ -4262,7 +4264,9 @@
             sockListLock.unlock();
             masterServer->DownRef();
             masterServer = NULL;
-            masterServerReconnect->start(1000);
+            // Called from MythSocketThread - cannot start MainServer's timer
+            // masterServerReconnect->start(1000);
+            emit masterConnectionLost();
             return;
         }
         else if (sock == socket)
