Index: /branches/BNC_2.12/src/RTCM3/RTCM3Decoder.cpp
===================================================================
--- /branches/BNC_2.12/src/RTCM3/RTCM3Decoder.cpp	(revision 9048)
+++ /branches/BNC_2.12/src/RTCM3/RTCM3Decoder.cpp	(revision 9049)
@@ -1619,11 +1619,14 @@
     	  (id >= 1240 && id <= 1270) ||
 		  (id == 4076)) {
-        RTCM3coDecoder::e_type type = RTCM3coDecoder::RTCMssr;
+        if (!_coDecoders.contains(_staID.toLatin1())) {
+          _coDecoders[_staID.toLatin1()] = new RTCM3coDecoder(_staID);
+        }
+        RTCM3coDecoder* coDecoder = _coDecoders[_staID.toLatin1()];
         if (id == 4076) {
-          type = RTCM3coDecoder::IGSssr;
+          coDecoder->setSsrFormatType(RTCM3coDecoder::IGSssr);
         }
-        if (!_coDecoders.contains(_staID.toLatin1()))
-          _coDecoders[_staID.toLatin1()] = new RTCM3coDecoder(_staID, type);
-        RTCM3coDecoder* coDecoder = _coDecoders[_staID.toLatin1()];
+        else {
+          coDecoder->setSsrFormatType(RTCM3coDecoder::RTCMssr);
+        }
         if (coDecoder->Decode(reinterpret_cast<char *>(_Message), _BlockSize,
             errmsg) == success) {
Index: /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.cpp
===================================================================
--- /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.cpp	(revision 9048)
+++ /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.cpp	(revision 9049)
@@ -53,5 +53,5 @@
 // Constructor
 ////////////////////////////////////////////////////////////////////////////
-RTCM3coDecoder::RTCM3coDecoder(const QString& staID, const e_type type) {
+RTCM3coDecoder::RTCM3coDecoder(const QString& staID) {
 
   _staID = staID;
@@ -97,5 +97,4 @@
   _providerID[2] = -1;
 
-  _type = type;
   _ssrCorr = 0;
 }
Index: /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.h
===================================================================
--- /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.h	(revision 9048)
+++ /branches/BNC_2.12/src/RTCM3/RTCM3coDecoder.h	(revision 9049)
@@ -37,8 +37,9 @@
  public:
   enum e_type {RTCMssr, IGSssr};
-  RTCM3coDecoder(const QString& staID, const e_type type);
+  RTCM3coDecoder(const QString& staID);
   virtual ~RTCM3coDecoder();
   virtual t_irc Decode(char* buffer, int bufLen, std::vector<std::string>& errmsg);
-  virtual int   corrGPSEpochTime() const {return int(_lastTime.gpssec());}
+  virtual int corrGPSEpochTime() const {return int(_lastTime.gpssec());}
+  virtual void setSsrFormatType(const e_type type) {_type = type;}
 
  signals:
@@ -57,5 +58,4 @@
   void reopen();
   void checkProviderID();
-  std::string codeTypeToRnxType(char system, SsrCorr::CodeType type) const;
 
   std::ofstream*                        _out;
