Index: trunk/BNC/GPSS/gpssDecoder.cpp
===================================================================
--- trunk/BNC/GPSS/gpssDecoder.cpp	(revision 1313)
+++ trunk/BNC/GPSS/gpssDecoder.cpp	(revision 1314)
@@ -17,4 +17,5 @@
 
 #include "gpssDecoder.h"
+#include "bncapp.h"
 
 #define MODE_SEARCH     0
@@ -41,4 +42,7 @@
   _mode       = MODE_SEARCH;
   _recordSize = 0;
+
+  connect(this, SIGNAL(newGPSEph(gpsephemeris*)), 
+          (bncApp*) qApp, SLOT(slotNewGPSEph(gpsephemeris*)));
 }
 
@@ -60,5 +64,4 @@
 
   EPOCHHEADER   epochHdr;
-  gpsephemeris  gpsEph;
 
   unsigned offset     = 0;
@@ -124,7 +127,8 @@
           _mode = MODE_SEARCH;
         } else {
-          memcpy(&gpsEph, &_buffer[offset], sizeof(gpsEph));
-          emit newGPSEph(&gpsEph);
-          offset += sizeof(gpsEph) - 1;
+          gpsephemeris* gpsEph = new gpsephemeris;
+          memcpy(gpsEph, &_buffer[offset], sizeof(gpsephemeris));
+          emit newGPSEph(gpsEph);
+          offset += sizeof(gpsephemeris) - 1;
           _mode = MODE_EPH_CRC;
         }
Index: trunk/BNC/GPSS/gpssDecoder.h
===================================================================
--- trunk/BNC/GPSS/gpssDecoder.h	(revision 1313)
+++ trunk/BNC/GPSS/gpssDecoder.h	(revision 1314)
@@ -22,4 +22,5 @@
  private:
   int         _mode;
+  int         _recordSize;
   std::string _buffer;
 } ;
