Index: trunk/BNC/bncgetthread.cpp
===================================================================
--- trunk/BNC/bncgetthread.cpp	(revision 405)
+++ trunk/BNC/bncgetthread.cpp	(revision 406)
@@ -66,4 +66,5 @@
                            const QByteArray& nmea, int iMount) {
   _decoder    = 0;
+  _zeroDecoder= false;
   _mountPoint = mountPoint;
   _staID      = mountPoint.path().mid(1).toAscii();
@@ -289,5 +290,5 @@
   // Instantiate the filter
   // ----------------------
-  if (!_decoder) { 
+  if (!_decoder && !_zeroDecoder) { 
     if      (_format.indexOf("RTCM_2") != -1) {
       emit(newMessage("Get Data: " + _staID + " in RTCM 2.x format"));
@@ -301,4 +302,8 @@
       emit(newMessage("Get Data: " + _staID + " in RTIGS format"));
       _decoder = new RTIGSDecoder();
+    }
+    else if (_format.indexOf("SP3") != -1) {
+      emit(newMessage("Get Data in SP3 format"));
+      _zeroDecoder = true;
     }
     else {
@@ -340,4 +345,10 @@
         char* data = new char[nBytes];
         _socket->read(data, nBytes);
+
+        if (_zeroDecoder) {
+          cout.write(data, nBytes);
+          continue;
+        }
+
         _decoder->Decode(data, nBytes);
         delete [] data;
Index: trunk/BNC/bncgetthread.h
===================================================================
--- trunk/BNC/bncgetthread.h	(revision 405)
+++ trunk/BNC/bncgetthread.h	(revision 406)
@@ -74,4 +74,5 @@
    int         _nextSleep;
    int         _iMount;
+   bool        _zeroDecoder;
 };
 
