Index: trunk/BNC/src/bnccore.cpp
===================================================================
--- trunk/BNC/src/bnccore.cpp	(revision 5845)
+++ trunk/BNC/src/bnccore.cpp	(revision 5846)
@@ -119,5 +119,5 @@
   _corrs = new QMultiMap<bncTime, QString>;
 
-  _currentDateAndTimeGPS = 0;
+  _dateAndTimeGPS = 0;
 
   for (int ii = 0; ii < PRN_GLONASS_NUM; ++ii) {
@@ -157,5 +157,5 @@
   delete _corrs;
 
-  delete _currentDateAndTimeGPS;
+  delete _dateAndTimeGPS;
 
   delete _rawFile;
@@ -835,2 +835,34 @@
 }
 
+
+//
+////////////////////////////////////////////////////////////////////////////
+bool t_bncCore::dateAndTimeGPSSet() const {
+  QMutexLocker locker(&_mutexDateAndTimeGPS);
+  if (_dateAndTimeGPS) {
+    return true;
+  }
+  else {
+    return false;
+  }
+}
+
+//
+////////////////////////////////////////////////////////////////////////////
+QDateTime t_bncCore::dateAndTimeGPS() const {
+  QMutexLocker locker(&_mutexDateAndTimeGPS);
+  if (_dateAndTimeGPS) {
+    return *_dateAndTimeGPS;
+  }
+  else {
+    return QDateTime();
+  }
+}
+
+//
+////////////////////////////////////////////////////////////////////////////
+void t_bncCore::setDateAndTimeGPS(QDateTime dateTime) {
+  QMutexLocker locker(&_mutexDateAndTimeGPS);
+  delete _dateAndTimeGPS;
+  _dateAndTimeGPS = new QDateTime(dateTime);
+}
Index: trunk/BNC/src/bnccore.h
===================================================================
--- trunk/BNC/src/bnccore.h	(revision 5845)
+++ trunk/BNC/src/bnccore.h	(revision 5846)
@@ -53,5 +53,7 @@
     void setCaster(bncCaster* caster) {_caster = caster;}
     const bncCaster* caster() const {return _caster;}
-    QDateTime* _currentDateAndTimeGPS;
+    bool      dateAndTimeGPSSet() const;
+    QDateTime dateAndTimeGPS() const;
+    void      setDateAndTimeGPS(QDateTime dateTime);
     void setConfFileName(const QString& confFileName);
     QString confFileName() const {return _confFileName;}
@@ -140,4 +142,6 @@
     QWidget*            _mainWindow;
     bool                _GUIenabled;
+    QDateTime*          _dateAndTimeGPS;
+    mutable QMutex      _mutexDateAndTimeGPS;
  public:
     bncPPPclient*       _bncPPPclient;
Index: trunk/BNC/src/bncrawfile.cpp
===================================================================
--- trunk/BNC/src/bncrawfile.cpp	(revision 5845)
+++ trunk/BNC/src/bncrawfile.cpp	(revision 5846)
@@ -136,7 +136,5 @@
       QStringList lst  = line.split(' ');
       
-      delete BNC_CORE->_currentDateAndTimeGPS;
-      BNC_CORE->_currentDateAndTimeGPS = 
-        new QDateTime(QDateTime::fromString(lst.value(0), Qt::ISODate));
+      BNC_CORE->setDateAndTimeGPS(QDateTime(QDateTime::fromString(lst.value(0), Qt::ISODate)));
       
       _staID  = lst.value(1).toAscii();
Index: trunk/BNC/src/bncutils.cpp
===================================================================
--- trunk/BNC/src/bncutils.cpp	(revision 5845)
+++ trunk/BNC/src/bncutils.cpp	(revision 5846)
@@ -93,6 +93,6 @@
   QDateTime currDateTimeGPS;
 
-  if ( BNC_CORE->_currentDateAndTimeGPS ) {
-    currDateTimeGPS = *(BNC_CORE->_currentDateAndTimeGPS);
+  if ( BNC_CORE->dateAndTimeGPSSet() ) {
+    currDateTimeGPS = BNC_CORE->dateAndTimeGPS();
   }
   else {
@@ -118,6 +118,6 @@
 ////////////////////////////////////////////////////////////////////////////
 QDateTime currentDateAndTimeGPS() {
-  if ( BNC_CORE->_currentDateAndTimeGPS ) {
-    return *(BNC_CORE->_currentDateAndTimeGPS);
+  if ( BNC_CORE->dateAndTimeGPSSet() ) {
+    return BNC_CORE->dateAndTimeGPS();
   }
   else {
