Index: trunk/BNC/src/PPP/pppMain.cpp
===================================================================
--- trunk/BNC/src/PPP/pppMain.cpp	(revision 5970)
+++ trunk/BNC/src/PPP/pppMain.cpp	(revision 5971)
@@ -94,4 +94,9 @@
   }
 
+  if (!_realTime) {
+    cout << "t_pppMain::stop RINEX" << endl;
+    return;
+  }
+
   QListIterator<t_pppThread*> it(_pppThreads);
   while (it.hasNext()) {
@@ -126,10 +131,10 @@
   _nmeaPort = settings.value("PPP/nmeaPort").toInt();
 
-  bool realTime = false;
+  _realTime = false;
   if      (settings.value("PPP/dataSource").toString() == "Real-Time Streams") {
-    realTime = true;
+    _realTime = true;
   }
   else if (settings.value("PPP/dataSource").toString() == "RINEX Files") {
-    realTime = false;
+    _realTime = false;
   }
   else {
@@ -147,5 +152,5 @@
     t_pppOptions* opt = new t_pppOptions();
 
-    opt->_realTime     = realTime;
+    opt->_realTime     = _realTime;
     opt->_roverName    = hlp[0].toAscii().data();
     opt->_aprSigCrd[0] = hlp[1].toDouble();
@@ -158,5 +163,5 @@
     opt->_noiseTrp     = hlp[8].toDouble();
 
-    if (realTime) {
+    if (_realTime) {
       opt->_corrMount = settings.value("PPP/corrMount").toString().toAscii().data();
     }
Index: trunk/BNC/src/PPP/pppMain.h
===================================================================
--- trunk/BNC/src/PPP/pppMain.h	(revision 5970)
+++ trunk/BNC/src/PPP/pppMain.h	(revision 5971)
@@ -24,4 +24,5 @@
   int      _nmeaPort;
   bool     _running;
+  bool     _realTime;
 };
 
Index: trunk/BNC/src/bncwindow.cpp
===================================================================
--- trunk/BNC/src/bncwindow.cpp	(revision 5970)
+++ trunk/BNC/src/bncwindow.cpp	(revision 5971)
@@ -94,10 +94,12 @@
           _bncFigurePPP, SLOT(slotNewPosition(QByteArray, bncTime, QVector<double>)));
 
-  connect(BNC_CORE, SIGNAL(progressRnxPPP(int)), this, SLOT(slotPostProgress(int)));
-  connect(BNC_CORE, SIGNAL(finishedRnxPPP()), this, SLOT(slotFinishedRnxPPP()));
-
-  _runningRealTime           = false;
-  _runningPostProcessingReqc = false;
-  _reqcActionComboBox        = 0; // necessary for enableStartStop()
+  connect(BNC_CORE, SIGNAL(progressRnxPPP(int)), this, SLOT(slotPostProcessingProgress(int)));
+  connect(BNC_CORE, SIGNAL(finishedRnxPPP()),    this, SLOT(slotPostProcessingFinished()));
+
+  _runningRealTime    = false;
+  _runningPPP         = false;
+  _runningEdit        = false;
+  _runningQC          = false;
+  _reqcActionComboBox = 0; // necessary for enableStartStop()
 
   _mapWin = 0;
@@ -1672,8 +1674,22 @@
   saveOptions();
   if      ( _pppWidgets._dataSource->currentText() == "RINEX Files") {
+    _runningPPP = true;
+    enableStartStop();
     BNC_CORE->startPPP();
   }
   else if ( !_reqcActionComboBox->currentText().isEmpty() ) {
-    startPostProcessingReqc();
+    if (_reqcActionComboBox->currentText() == "Analyze") {
+      _runningQC = true;
+      t_reqcAnalyze* reqcAnalyze = new t_reqcAnalyze(this);
+      connect(reqcAnalyze, SIGNAL(finished()), this, SLOT(slotPostProcessingFinished()));
+      reqcAnalyze->start();
+    }
+    else {
+      _runningEdit = true;
+      t_reqcEdit* reqcEdit = new t_reqcEdit(this);
+      connect(reqcEdit, SIGNAL(finished()), this, SLOT(slotPostProcessingFinished()));
+      reqcEdit->start();
+    }
+    enableStartStop();
   }
   else {
@@ -1749,5 +1765,5 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncWindow::slotStop() {
-  int iRet = QMessageBox::question(this, "Stop", "Stop retrieving data?", 
+  int iRet = QMessageBox::question(this, "Stop", "Stop retrieving/processing data?", 
                                    QMessageBox::Yes, QMessageBox::No,
                                    QMessageBox::NoButton);
@@ -1758,4 +1774,5 @@
     delete _casterEph; _casterEph = 0;
     _runningRealTime = false;
+    _runningPPP      = false;
     enableStartStop();
   }
@@ -2336,46 +2353,15 @@
 // Progress Bar Change
 ////////////////////////////////////////////////////////////////////////////
-void bncWindow::slotPostProgress(int nEpo) {
-  if (_actStart) {
-    _actStart->setText(QString("%1 Epochs").arg(nEpo));
-  }
-}
-
-// Start Post-Processing Reqc
-////////////////////////////////////////////////////////////////////////////
-void bncWindow::startPostProcessingReqc() {
-  _runningPostProcessingReqc = true;
+void bncWindow::slotPostProcessingProgress(int nEpo) {
+  _actStart->setText(QString("%1 Epochs").arg(nEpo));
+}
+
+// Post-Processing Reqc Finished
+////////////////////////////////////////////////////////////////////////////
+void bncWindow::slotPostProcessingFinished() {
+  _runningPPP  = false;
+  _runningEdit = false;
+  _runningQC   = false;
   enableStartStop();
-  if (_reqcActionComboBox->currentText() == "Analyze") {
-    t_reqcAnalyze* reqcAnalyze = new t_reqcAnalyze(this);
-    connect(reqcAnalyze, SIGNAL(finished()), 
-            this, SLOT(slotFinishedPostProcessingReqc()));
-    reqcAnalyze->start();
-  }
-  else {
-    t_reqcEdit* reqcEdit = new t_reqcEdit(this);
-    connect(reqcEdit, SIGNAL(finished()), 
-            this, SLOT(slotFinishedPostProcessingReqc()));
-    reqcEdit->start();
-  }
-}
-
-// Post-Processing Reqc Finished
-////////////////////////////////////////////////////////////////////////////
-void bncWindow::slotFinishedPostProcessingReqc() {
-  _runningPostProcessingReqc = false;
-  if (_reqcActionComboBox->currentText() != "Analyze") {
-    QMessageBox::information(this, "Information",
-                             "RINEX Processing Thread Finished");
-  }
-  enableStartStop();
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-void bncWindow::slotFinishedRnxPPP() {
-  if (_actStart) {
-    _actStart->setText(tr("Sta&rt"));
-  }
 }
 
@@ -2392,28 +2378,13 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncWindow::enableStartStop() {
-
-  if ( _reqcActionComboBox && !_reqcActionComboBox->currentText().isEmpty() ) {
-    if (_runningPostProcessingReqc) {
-      _actStart->setEnabled(false);
-    }
-    else {
-      _actStart->setEnabled(true);
-    }
+  if ( running() ) {
+    _actStart->setEnabled(false);
+    if (_runningPPP) {
+      _actStop->setEnabled(true);
+    }
+  }
+  else {
+    _actStart->setEnabled(true);
     _actStop->setEnabled(false);
-  }
-  else {
-    if (_runningRealTime) {
-      _actStart->setEnabled(false);
-      _actStop->setEnabled(true);
-    }
-    else {
-      _actStop->setEnabled(false);
-      if (_mountPointsTable->rowCount() == 0) {
-        _actStart->setEnabled(false);
-      }
-      else {
-        _actStart->setEnabled(true);
-      }
-    }
   }
 }
Index: trunk/BNC/src/bncwindow.h
===================================================================
--- trunk/BNC/src/bncwindow.h	(revision 5970)
+++ trunk/BNC/src/bncwindow.h	(revision 5971)
@@ -93,7 +93,6 @@
     void slotSetUploadTrafo();
     void slotReqcEditOption();
-    void slotFinishedPostProcessingReqc();
-    void slotPostProgress(int);
-    void slotFinishedRnxPPP();
+    void slotPostProcessingFinished();
+    void slotPostProcessingProgress(int);
 
   protected:
@@ -107,5 +106,4 @@
     void enableWidget(bool enable, QWidget* widget);
     void startRealTime();
-    void startPostProcessingReqc();
     void enableStartStop();
 
@@ -223,5 +221,9 @@
 
     bool _runningRealTime;
-    bool _runningPostProcessingReqc;
+    bool _runningPPP;
+    bool _runningEdit;
+    bool _runningQC;
+
+    bool running() {return _runningRealTime || _runningPPP || _runningEdit || _runningQC;}
 
     bncMapWin*           _mapWin;
