Index: /trunk/BNC/bncwindow.cpp
===================================================================
--- /trunk/BNC/bncwindow.cpp	(revision 3735)
+++ /trunk/BNC/bncwindow.cpp	(revision 3736)
@@ -78,5 +78,6 @@
   _bncFigureLate = new bncFigureLate(this);
   _bncFigurePPP = new bncFigurePPP(this);
-  _postProcessingRunning = false;
+  _postProcessingRunningPPP  = false;
+  _postProcessingRunningTeqc = false;
 
   int ww = QFontMetrics(this->font()).width('w');
@@ -607,4 +608,7 @@
   _aogroup->addTab(uploadgroup,tr("Upload (clk)"));
   _aogroup->addTab(uploadEphgroup,tr("Upload (eph)"));
+
+  connect(_aogroup, SIGNAL(currentChanged(int)), 
+          this, SLOT(slotEnablePostProcessing()));
 
   // Log Tab
@@ -2116,7 +2120,7 @@
     enableWidget(enable9, _postCorrFileChooser);
     enableWidget(enable9, _postOutLineEdit);
-    _actPostProcessing->setEnabled(enable9);
-
     enableWidget(!enable9, _pppMountLineEdit);
+
+    slotEnablePostProcessing();
   }
 }
@@ -2301,5 +2305,5 @@
 void bncWindow::slotStartPostProcessing() {
   if      (_aogroup->currentIndex() == _tabIndexPPP1 ||
-      _aogroup->currentIndex() == _tabIndexPPP2) {
+           _aogroup->currentIndex() == _tabIndexPPP2) {
     startPostProcessingPPP();
   }
@@ -2313,5 +2317,6 @@
 void bncWindow::startPostProcessingPPP() {
 #ifdef USE_POSTPROCESSING
-  _actPostProcessing->setEnabled(false);
+  _postProcessingRunningPPP = true;
+  slotEnablePostProcessing();
   _actPostProcessing->setText("0 Epochs");
 
@@ -2319,5 +2324,5 @@
 
   t_postProcessing* postProcessing = new t_postProcessing(this);
-  connect(postProcessing, SIGNAL(finished()), this, SLOT(slotFinishedPostProcessing()));
+  connect(postProcessing, SIGNAL(finished()), this, SLOT(slotFinishedPostProcessingPPP()));
   connect(postProcessing, SIGNAL(progress(int)), this, SLOT(slotPostProgress(int)));
 
@@ -2331,9 +2336,9 @@
 // Post-Processing PPP Finished
 ////////////////////////////////////////////////////////////////////////////
-void bncWindow::slotFinishedPostProcessing() {
+void bncWindow::slotFinishedPostProcessingPPP() {
+  _postProcessingRunningPPP = false;
   QMessageBox::information(this, "Information",
                            "Post-Processing Thread Finished");
-  _actPostProcessing->setText("Start Post-Processing");
-  _actPostProcessing->setEnabled(true);
+  slotEnablePostProcessing();
 }
 
@@ -2349,12 +2354,41 @@
 ////////////////////////////////////////////////////////////////////////////
 void bncWindow::startPostProcessingTeqc() {
+  _postProcessingRunningTeqc = false;  // TODO
   QMessageBox::information(this, "Information",
                            "Teqc-Processing Not Yet Implemented");
+  slotEnablePostProcessing();
 }
 
 // Post-Processing Teqc Finished
 ////////////////////////////////////////////////////////////////////////////
-void bncWindow::slotFinishedTeqcProcessing() {
+void bncWindow::slotFinishedPostProcessingTeqc() {
+  _postProcessingRunningTeqc = false;
   QMessageBox::information(this, "Information",
                            "Teqc-Processing Thread Finished");
-}
+  slotEnablePostProcessing();
+}
+
+// Enable/Disable Post-Processing Action
+////////////////////////////////////////////////////////////////////////////
+void bncWindow::slotEnablePostProcessing() {
+  if (_actPostProcessing) {
+    if (_postProcessingRunningPPP || _postProcessingRunningTeqc) {
+      _actPostProcessing->setEnabled(false);
+    }
+    else {
+      _actPostProcessing->setText("Start PPP/Teqc");
+      if      (_aogroup->currentIndex() == _tabIndexPPP1 ||
+               _aogroup->currentIndex() == _tabIndexPPP2) {
+        bool enable = _pppSPPComboBox->currentText() == "RNX";
+        _actPostProcessing->setEnabled(enable);
+      }
+      else if (_aogroup->currentIndex() == _tabIndexTeqc) {
+        _actPostProcessing->setEnabled(true);
+      }
+      else {
+        _actPostProcessing->setEnabled(false);
+      }
+    }
+  }
+}
+
Index: /trunk/BNC/bncwindow.h
===================================================================
--- /trunk/BNC/bncwindow.h	(revision 3735)
+++ /trunk/BNC/bncwindow.h	(revision 3736)
@@ -78,6 +78,6 @@
     void slotGetData();
     void slotStartPostProcessing();
-    void slotFinishedPostProcessing();
-    void slotFinishedTeqcProcessing();
+    void slotFinishedPostProcessingPPP();
+    void slotFinishedPostProcessingTeqc();
     void slotStop();
     void slotNewMountPoints(QStringList* mountPoints);
@@ -91,4 +91,5 @@
     void slotDelUploadRow();
     void slotSetUploadTrafo();
+    void slotEnablePostProcessing();
 
   protected:
@@ -102,5 +103,4 @@
     void startPostProcessingPPP();
     void startPostProcessingTeqc();
-    void enablePostProcessing();
 
     QMenu*     _menuHlp;
@@ -247,5 +247,6 @@
     int _tabIndexPPP2;
     int _tabIndexTeqc;
-    bool _postProcessingRunning;
+    bool _postProcessingRunningPPP;
+    bool _postProcessingRunningTeqc;
 };
 #endif
