Index: trunk/BNS/bns.cpp
===================================================================
--- trunk/BNS/bns.cpp	(revision 829)
+++ trunk/BNS/bns.cpp	(revision 830)
@@ -74,6 +74,4 @@
     }
   }
-
-  openCaster();
 }
 
@@ -218,4 +216,7 @@
     if (_clkSocket && _clkSocket->state() == QAbstractSocket::ConnectedState) {
       if ( _clkSocket->canReadLine()) {
+        if (_outSocket == 0) {
+          openCaster();
+        }
         readEpoch();
       }
Index: trunk/BNS/bnseph.cpp
===================================================================
--- trunk/BNS/bnseph.cpp	(revision 829)
+++ trunk/BNS/bnseph.cpp	(revision 830)
@@ -26,16 +26,5 @@
 ////////////////////////////////////////////////////////////////////////////
 t_bnseph::t_bnseph(QObject* parent) : QThread(parent) {
-
-  QSettings settings;
-  QString host = "localhost";
-  int     port = settings.value("ephPort").toInt();
-
-  _socket = new QTcpSocket();
-  _socket->connectToHost(host, port);
-
-  const int timeOut = 3*1000;  // 3 seconds
-  if (!_socket->waitForConnected(timeOut)) {
-    emit(error("bnseph::run Connect Timeout"));
-  }
+  _socket = 0;
 }
 
@@ -52,14 +41,29 @@
   emit(newMessage("bnseph::run Start"));
 
-  while (true) {
-    if (_socket->state() != QAbstractSocket::ConnectedState) {
-      emit(error("bnseph::not connected"));
-      break;
-    }
-    if (_socket->canReadLine()) {
-      readEph();
-    }
-    else {
-      _socket->waitForReadyRead(10);
+  // Connect the Socket
+  // ------------------
+  QSettings settings;
+  QString host = "localhost";
+  int     port = settings.value("ephPort").toInt();
+
+  _socket = new QTcpSocket();
+  _socket->connectToHost(host, port);
+
+  const int timeOut = 3*1000;  // 3 seconds
+  if (!_socket->waitForConnected(timeOut)) {
+    emit(error("bnseph::run Connect Timeout"));
+  }
+  else {
+    while (true) {
+      if (_socket->state() != QAbstractSocket::ConnectedState) {
+        emit(error("bnseph::not connected"));
+        break;
+      }
+      if (_socket->canReadLine()) {
+        readEph();
+      }
+      else {
+        _socket->waitForReadyRead(10);
+      }
     }
   }
