Index: trunk/BNC/bncapp.h
===================================================================
--- trunk/BNC/bncapp.h	(revision 462)
+++ trunk/BNC/bncapp.h	(revision 463)
@@ -57,6 +57,4 @@
 #include "bnccaster.h"
 
-extern bncCaster* _global_caster;
-
 class bncApp : public QApplication {
   Q_OBJECT
Index: trunk/BNC/bnccaster.cpp
===================================================================
--- trunk/BNC/bnccaster.cpp	(revision 462)
+++ trunk/BNC/bnccaster.cpp	(revision 463)
@@ -114,5 +114,5 @@
 // New Observations
 ////////////////////////////////////////////////////////////////////////////
-void bncCaster::newObs(const QByteArray& staID, bool firstObs, 
+void bncCaster::newObs(const QByteArray staID, bool firstObs, 
                        Observation* obs) {
 
@@ -169,4 +169,7 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncCaster::addGetThread(bncGetThread* getThread) {
+  connect(getThread, SIGNAL(newObs(const QByteArray, bool, Observation*)),
+          this,      SLOT(newObs(const QByteArray, bool, Observation*)));
+
   connect(getThread, SIGNAL(error(const QByteArray)), 
           this, SLOT(slotGetThreadError(const QByteArray)));
Index: trunk/BNC/bnccaster.h
===================================================================
--- trunk/BNC/bnccaster.h	(revision 462)
+++ trunk/BNC/bnccaster.h	(revision 463)
@@ -43,5 +43,7 @@
    void addGetThread(bncGetThread* getThread);
    int  numStations() const {return _staIDs.size();}
-   void newObs(const QByteArray& staID, bool firstObs, Observation* obs);
+
+ public slots:
+   void newObs(const QByteArray staID, bool firstObs, Observation* obs);
 
  signals:
Index: trunk/BNC/bncgetthread.cpp
===================================================================
--- trunk/BNC/bncgetthread.cpp	(revision 462)
+++ trunk/BNC/bncgetthread.cpp	(revision 463)
@@ -404,5 +404,5 @@
           emit newBytes(_staID, sizeof(**it));
           bool firstObs = (it == _decoder->_obsList.begin());
-          _global_caster->newObs(_staID, firstObs, *it);
+          emit newObs(_staID, firstObs, *it);
         }
         _decoder->_obsList.clear();
Index: trunk/BNC/bncgetthread.h
===================================================================
--- trunk/BNC/bncgetthread.h	(revision 462)
+++ trunk/BNC/bncgetthread.h	(revision 463)
@@ -53,4 +53,5 @@
  signals:
    void newBytes(const QByteArray staID, double nbyte);
+   void newObs(const QByteArray staID, bool firstObs, Observation* obs);
    void error(const QByteArray staID);
    void newMessage(const QByteArray msg);
Index: trunk/BNC/bncmain.cpp
===================================================================
--- trunk/BNC/bncmain.cpp	(revision 462)
+++ trunk/BNC/bncmain.cpp	(revision 463)
@@ -50,6 +50,4 @@
 using namespace std;
 
-bncCaster* _global_caster = 0;
-
 // Main Program
 /////////////////////////////////////////////////////////////////////////////
@@ -102,9 +100,9 @@
   // ----------------------------
   else {
-    _global_caster = new bncCaster(settings.value("outFile").toString(),
-                                   settings.value("outPort").toInt());
+    bncCaster* caster = new bncCaster(settings.value("outFile").toString(),
+                                      settings.value("outPort").toInt());
 
-    app.connect(_global_caster, SIGNAL(getThreadErrors()), &app, SLOT(quit()));
-    app.connect(_global_caster, SIGNAL(newMessage(const QByteArray&)), 
+    app.connect(caster, SIGNAL(getThreadErrors()), &app, SLOT(quit()));
+    app.connect(caster, SIGNAL(newMessage(const QByteArray&)), 
                 &app, SLOT(slotMessage(const QByteArray&)));
   
@@ -126,9 +124,9 @@
                   &app, SLOT(slotMessage(const QByteArray&)));
 
-      _global_caster->addGetThread(getThread);
+      caster->addGetThread(getThread);
 
       getThread->start();
     }
-    if (_global_caster->numStations() == 0) {
+    if (caster->numStations() == 0) {
       return 0;
     }
Index: trunk/BNC/bncwindow.cpp
===================================================================
--- trunk/BNC/bncwindow.cpp	(revision 462)
+++ trunk/BNC/bncwindow.cpp	(revision 463)
@@ -474,13 +474,13 @@
   _actStop->setEnabled(true);
 
-  _global_caster = new bncCaster(_outFileLineEdit->text(), 
+  _caster = new bncCaster(_outFileLineEdit->text(), 
                              _outPortLineEdit->text().toInt());
 
-  connect(_global_caster, SIGNAL(getThreadErrors()), 
+  connect(_caster, SIGNAL(getThreadErrors()), 
           this, SLOT(slotGetThreadErrors()));
 
-  connect(_global_caster, SIGNAL(newMessage(const QByteArray&)), 
+  connect(_caster, SIGNAL(newMessage(const QByteArray&)), 
           this, SLOT(slotMessage(const QByteArray&)));
-  connect(_global_caster, SIGNAL(newMessage(const QByteArray&)), 
+  connect(_caster, SIGNAL(newMessage(const QByteArray&)), 
           (bncApp*)qApp, SLOT(slotMessage(const QByteArray&)));
 
@@ -509,5 +509,5 @@
             SLOT(slotNewBytes(const QByteArray, double)));
 
-    _global_caster->addGetThread(getThread);
+    _caster->addGetThread(getThread);
 
     getThread->start();
@@ -522,5 +522,5 @@
                                    QMessageBox::NoButton);
   if (iRet == QMessageBox::Yes) {
-    delete _global_caster; _global_caster = 0;
+    delete _caster; _caster = 0;
     _actGetData->setEnabled(true);
     _actStop->setEnabled(false);
Index: trunk/BNC/bncwindow.h
===================================================================
--- trunk/BNC/bncwindow.h	(revision 462)
+++ trunk/BNC/bncwindow.h	(revision 463)
@@ -31,4 +31,5 @@
 
 #include "bncgetthread.h"
+#include "bnccaster.h"
 
 class bncWindow : public QMainWindow {
@@ -95,4 +96,6 @@
 
     QWidget*   _canvas;
+
+    bncCaster* _caster;
 };
 #endif
