Index: trunk/BNC/src/GPSS/hassDecoder.cpp
===================================================================
--- trunk/BNC/src/GPSS/hassDecoder.cpp	(revision 5575)
+++ trunk/BNC/src/GPSS/hassDecoder.cpp	(revision 5576)
@@ -141,19 +141,13 @@
     }
 
-    int SSRProviderID = 0;
-    int SSRSolutionID = 0;
-    int SSRIOD        = 0;
-
     corrLine.sprintf("%d %d %d %.1f %s"
                      "   %3d"
                      "   %8.3f %8.3f %8.3f %8.3f"
                      "   %10.5f %10.5f %10.5f %10.5f"
-                     "   %10.5f"
-                     "   %5d %2d %2d",
+                     "   %10.5f",
                      messageType, updateInterval, coTime.gpsw(), _GPSweeks,
                      prn.toAscii().data(), IOD, 
                      dClk, rao[0], rao[1], rao[2],
-                     0.0, dotRao[0], dotRao[1], dotRao[2], 0.0,
-                     SSRProviderID, SSRSolutionID, SSRIOD);
+                     0.0, dotRao[0], dotRao[1], dotRao[2], 0.0);
 
     RTCM3coDecoder::reopen(_fileNameSkl, _fileName, _out);    
Index: trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 5575)
+++ trunk/BNC/src/RTCM3/RTCM3coDecoder.cpp	(revision 5576)
@@ -82,4 +82,8 @@
   memset(&_co, 0, sizeof(_co));
   memset(&_bias, 0, sizeof(_bias));
+
+  _providerID[0] = -1;
+  _providerID[1] = -1;
+  _providerID[2] = -1;
 }
 
@@ -220,4 +224,6 @@
         }
 
+        checkProviderID();
+
         QStringList asciiLines = corrsToASCIIlines(GPSweek, _GPSweeks, 
                                                    _co, &_bias);
@@ -309,6 +315,5 @@
                      "   %8.3f %8.3f %8.3f %8.3f"
                      "   %10.5f %10.5f %10.5f %10.5f"
-                     "   %10.5f"
-                     "   %5d %2d %2d",
+                     "   %10.5f",
                      co.Sat[ii].IOD, 
                      co.Sat[ii].Clock.DeltaA0,
@@ -320,6 +325,5 @@
                      co.Sat[ii].Orbit.DotDeltaAlongTrack,
                      co.Sat[ii].Orbit.DotDeltaCrossTrack,
-                     co.Sat[ii].Clock.DeltaA2,
-                     co.SSRProviderID, co.SSRSolutionID, co.SSRIOD);
+                     co.Sat[ii].Clock.DeltaA2);
         retLines << linePart+line;
       }
@@ -332,6 +336,5 @@
         line.sprintf("   %3d"
                      "   %8.3f %8.3f %8.3f"
-                     "   %10.5f %10.5f %10.5f"
-                     "   %5d %2d %2d",
+                     "   %10.5f %10.5f %10.5f",
                      co.Sat[ii].IOD, 
                      co.Sat[ii].Orbit.DeltaRadial, 
@@ -340,6 +343,5 @@
                      co.Sat[ii].Orbit.DotDeltaRadial, 
                      co.Sat[ii].Orbit.DotDeltaAlongTrack,
-                     co.Sat[ii].Orbit.DotDeltaCrossTrack,
-                     co.SSRProviderID, co.SSRSolutionID, co.SSRIOD);
+                     co.Sat[ii].Orbit.DotDeltaCrossTrack);
         retLines << linePart+line;
       }
@@ -416,2 +418,33 @@
   return retLines;
 }
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void RTCM3coDecoder::checkProviderID() {
+
+  if (_co.SSRProviderID == 0 && _co.SSRSolutionID == 0 && _co.SSRIOD == 0) {
+    return;
+  }
+
+  int newProviderID[3];
+  newProviderID[0] = _co.SSRProviderID;
+  newProviderID[1] = _co.SSRSolutionID;
+  newProviderID[2] = _co.SSRIOD;
+
+  bool alreadySet = false;
+  bool different  = false;
+
+  for (unsigned ii = 0; ii < 3; ii++) {
+    if (_providerID[ii] != -1) {
+      alreadySet = true;
+    }
+    if (_providerID[ii] != newProviderID[ii]) {
+      different = true;
+    }
+    _providerID[ii] = newProviderID[ii];
+  }
+    
+  if (alreadySet && different) {
+    emit newMessage("RTCM3coDecoder: Provider Changed\n", true);
+  }
+}
Index: trunk/BNC/src/RTCM3/RTCM3coDecoder.h
===================================================================
--- trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 5575)
+++ trunk/BNC/src/RTCM3/RTCM3coDecoder.h	(revision 5576)
@@ -55,4 +55,5 @@
  private:
   void printLine(const QString& line, int GPSweek, double GPSweeks);
+  void checkProviderID();
   std::ofstream* _out;
   QString        _staID;
@@ -63,4 +64,5 @@
   ClockOrbit     _co;
   Bias           _bias;
+  int            _providerID[3];
 };
 
Index: trunk/BNC/src/bncephuser.cpp
===================================================================
--- trunk/BNC/src/bncephuser.cpp	(revision 5575)
+++ trunk/BNC/src/bncephuser.cpp	(revision 5576)
@@ -217,5 +217,5 @@
        >> dClk       >> rao[0]       >> rao[1]       >> rao[2]
        >> dotDClk    >> dotRao[0]    >> dotRao[1]    >> dotRao[2]
-       >> dotDotDClk >> streamID[0]  >> streamID[1]  >> streamID[2];
+       >> dotDotDClk;
 
     dClk       /= t_CST::c;
@@ -232,6 +232,5 @@
     in >> iod 
        >> rao[0]       >> rao[1]       >> rao[2]
-       >> dotRao[0]    >> dotRao[1]    >> dotRao[2]
-       >> streamID[0]  >> streamID[1]  >> streamID[2];
+       >> dotRao[0]    >> dotRao[1]    >> dotRao[2];
 
     tRao.set(GPSweek, GPSweeks);
Index: trunk/BNC/src/bncephuser.h
===================================================================
--- trunk/BNC/src/bncephuser.h	(revision 5575)
+++ trunk/BNC/src/bncephuser.h	(revision 5576)
@@ -51,7 +51,4 @@
     dotRao      = 0.0;
     eph         = 0;
-    streamID[0] = -1;
-    streamID[1] = -1;
-    streamID[2] = -1;
   }
   
@@ -85,5 +82,4 @@
   ColumnVector dotRao;
   const t_eph* eph;
-  int          streamID[3];
 };
 
Index: trunk/BNC/src/bncpppclient.cpp
===================================================================
--- trunk/BNC/src/bncpppclient.cpp	(revision 5575)
+++ trunk/BNC/src/bncpppclient.cpp	(revision 5576)
@@ -70,8 +70,4 @@
   _model = new bncModel(this);
 
-  _streamID[0] = -1;
-  _streamID[1] = -1;
-  _streamID[2] = -1;
-
   if (connectSlots) {
     connect(this, SIGNAL(newMessage(QByteArray,bool)), 
@@ -299,5 +295,4 @@
       }
       cc->readLine(line);
-      checkProviderID(cc);
       _corr_tt = cc->tClk;
     }
@@ -533,26 +528,2 @@
 }
 
-// 
-////////////////////////////////////////////////////////////////////////////
-void bncPPPclient::checkProviderID(const t_corr* corr) {
-
-  bool alreadySet = false;
-  bool different  = false;
-
-  for (unsigned ii = 0; ii < 3; ii++) {
-    if (_streamID[ii] != -1) {
-      alreadySet = true;
-    }
-    if (corr->streamID[ii] != -1) {
-      if (_streamID[ii] != corr->streamID[ii]) {
-        different = true;
-      }
-      _streamID[ii] = corr->streamID[ii];
-    }
-  }
-    
-  if (alreadySet && different) {
-    delete _model;
-    _model = new bncModel(this);
-  }
-}
Index: trunk/BNC/src/bncpppclient.h
===================================================================
--- trunk/BNC/src/bncpppclient.h	(revision 5575)
+++ trunk/BNC/src/bncpppclient.h	(revision 5576)
@@ -158,5 +158,4 @@
   void processFrontEpoch();
   t_irc cmpToT(t_satData* satData);
-  void checkProviderID(const t_corr* corr);
 
   t_pppOpt*               _opt;
@@ -169,5 +168,4 @@
   bncModel*               _model;
   QMap<QString, slipInfo> _slips;
-  int                     _streamID[3];
 };
 
Index: trunk/BNC/src/combination/bnccomb.cpp
===================================================================
--- trunk/BNC/src/combination/bnccomb.cpp	(revision 5575)
+++ trunk/BNC/src/combination/bnccomb.cpp	(revision 5576)
@@ -709,12 +709,9 @@
     int messageType   = COTYPE_GPSCOMBINED;
     int updateInt     = 0;
-    int SSRProviderID = 0;
-    int SSRSolutionID = 0;
-    int SSRIOD        = 0;
     line.sprintf("%d %d %d %.1f %s"
                  "   %3d"
                  "   %8.3f %8.3f %8.3f %8.3f"
                  "   %10.5f %10.5f %10.5f %10.5f"
-                 "   %10.5f   %5d %2d %2d INTERNAL",
+                 "   %10.5f INTERNAL",
                  messageType, updateInt, _resTime.gpsw(), _resTime.gpssec(),
                  corr->prn.toAscii().data(),
@@ -728,6 +725,5 @@
                  corr->dotRao[1],
                  corr->dotRao[2],
-                 corr->dotDotDClk * t_CST::c,
-                 SSRProviderID, SSRSolutionID, SSRIOD);
+                 corr->dotDotDClk * t_CST::c);
     corrLines << line;
 
