Index: trunk/BNC/bncfigureppp.cpp
===================================================================
--- trunk/BNC/bncfigureppp.cpp	(revision 2647)
+++ trunk/BNC/bncfigureppp.cpp	(revision 2648)
@@ -69,10 +69,11 @@
   bncSettings settings;
 
-  if      (settings.value("pppOrigin").toString() == "X Y Z") {
+  if (settings.value("pppOrigin").toString() == "Plot - X Y Z" || 
+      settings.value("pppOrigin").toString() == "QuickStart - Static") {
     _xyzRef[0] = settings.value("pppRefCrdX").toDouble();
     _xyzRef[1] = settings.value("pppRefCrdY").toDouble();
     _xyzRef[2] = settings.value("pppRefCrdZ").toDouble();
   }
-  else if (settings.value("pppOrigin").toString() == "Start position") {
+  else if (settings.value("pppOrigin").toString() == "Plot - Start position") {
     _xyzRef[0] = 0.0;
     _xyzRef[1] = 0.0;
Index: trunk/BNC/bncmodel.cpp
===================================================================
--- trunk/BNC/bncmodel.cpp	(revision 2647)
+++ trunk/BNC/bncmodel.cpp	(revision 2648)
@@ -60,6 +60,5 @@
 const double   MAXRES_PHASE_GPS = 0.10;
 const double   MAXRES_PHASE_GLO = 0.05;
-const double   sig_crd_0        =  100.0;
-const double   sig_crd_p        =  100.0;
+const double   QUICKSTART       =  120.0;
 const double   sig_clk_0        = 1000.0;
 const double   sig_trp_0        =    0.10;
@@ -137,8 +136,17 @@
   _staID   = staID;
 
+  _startTime = QDateTime::currentDateTime();
+
+  bncSettings settings;
+
+  double sig_crd_0 = 100.0;
+
+  if (settings.value("pppOrigin").toString() == "QuickStart - Static" ||
+      settings.value("pppOrigin").toString() == "QuickStart - Mobile") {
+    sig_crd_0 = 000.01;
+  } 
+
   connect(this, SIGNAL(newMessage(QByteArray,bool)), 
           ((bncApp*)qApp), SLOT(slotMessage(const QByteArray,bool)));
-
-  bncSettings settings;
 
   _static = false;
@@ -166,12 +174,4 @@
   else {
     _useGlonass = false;
-  }
-
-  _tRangeAverage = settings.value("pppAverage").toDouble() * 60.;
-  if (_tRangeAverage < 0) {
-    _tRangeAverage = 0;
-  }
-  if (_tRangeAverage > 86400) {
-    _tRangeAverage = 86400;
   }
 
@@ -223,13 +223,4 @@
     _nmeaStream->setDevice(_nmeaFile);
   }
-//Perlt Anfang
-  _xyzAverage[0] = 0.0; _xyzAverage[1] = 0.0; _xyzAverage[2] = 0.0;
-  _xyzAverage[3] = 0.0; _xyzAverage[4] = 0.0; _xyzAverage[5] = 0.0;
-  _xyzAverageSqr[0] = 0.0; _xyzAverageSqr[1] = 0.0; _xyzAverageSqr[2] = 0.0;
-  _xyzAverageSqr[3] = 0.0; _xyzAverageSqr[4] = 0.0; _xyzAverageSqr[5] = 0.0;
-  for (int ii = 0; ii < _posAverage.size(); ++ii) { delete _posAverage[ii]; }
-  _posAverage.clear();
-//Perlt Ende
-
 }
 
@@ -239,7 +230,7 @@
   delete _nmeaStream;
   delete _nmeaFile;
-//Perlt Anfang
-  for (int ii = 0; ii < _posAverage.size(); ++ii) { delete _posAverage[ii]; }
-//Perlt Ende
+  for (int ii = 0; ii < _posAverage.size(); ++ii) { 
+    delete _posAverage[ii]; 
+  }
 }
 
@@ -395,5 +386,20 @@
 void bncModel::predict(t_epoData* epoData) {
 
-  bool firstCrd = x() == 0.0 && y() == 0.0 && z() == 0.0;
+  bncSettings settings;
+
+  bool firstCrd = false;
+  if (x() == 0.0 && y() == 0.0 && z() == 0.0) {
+    firstCrd = true;
+  }
+
+  bool   quickStartInit = false;
+  double sig_crd_p      = 100.0;
+
+  if ( (settings.value("pppOrigin").toString() == "QuickStart - Static" ||
+        settings.value("pppOrigin").toString() == "QuickStart - Mobile") &&
+       _startTime.secsTo(QDateTime::currentDateTime()) < QUICKSTART ) {
+    quickStartInit = true;
+    sig_crd_p       = 0.0;
+  }
 
   // Predict Parameter values, add white noise
@@ -406,5 +412,10 @@
     if      (pp->type == bncParam::CRD_X) {
       if (firstCrd || !_static) {
-        pp->xx = _xcBanc(1);
+        if (quickStartInit) {
+          pp->xx = settings.value("pppRefCrdX").toDouble();
+        }
+        else {
+          pp->xx = _xcBanc(1);
+        }
       }
       _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
@@ -412,5 +423,10 @@
     else if (pp->type == bncParam::CRD_Y) {
       if (firstCrd || !_static) {
-        pp->xx = _xcBanc(2);
+        if (quickStartInit) {
+          pp->xx = settings.value("pppRefCrdY").toDouble();
+        }
+        else {
+          pp->xx = _xcBanc(2);
+        }
       }
       _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
@@ -418,5 +434,10 @@
     else if (pp->type == bncParam::CRD_Z) {
       if (firstCrd || !_static) {
-        pp->xx = _xcBanc(3);
+        if (quickStartInit) {
+          pp->xx = settings.value("pppRefCrdZ").toDouble();
+        }
+        else {
+          pp->xx = _xcBanc(3);
+        }
       }
       _QQ(iPar,iPar) += sig_crd_p * sig_crd_p;
@@ -751,5 +772,6 @@
   // NEU Output
   // ----------
-  if (settings.value("pppOrigin").toString() == "X Y Z") {
+  if (settings.value("pppOrigin").toString() == "Plot - X Y Z" || 
+      settings.value("pppOrigin").toString() == "QuickStart - Static") {
     double xyzRef[3];
     double ellRef[3];
@@ -769,121 +791,92 @@
          << setw(8) << setprecision(3) << _neu[2];
   }
-//Perlt Anfang
-//  strC << endl;
-//Perlt Ende
 
   emit newMessage(QByteArray(strC.str().c_str()), true);
 
-//Perlt Anfang
-  ostringstream strD;
-  strD.setf(ios::fixed);
-  ostringstream strE;
-  strE.setf(ios::fixed);
-
-  if (settings.value("pppOrigin").toString() != "No plot"  && settings.value("pppAverage").toString() != "") {
-    double xyzRef[3];
-    if (settings.value("pppOrigin").toString() == "X Y Z") {
-    xyzRef[0] = settings.value("pppRefCrdX").toDouble();
-    xyzRef[1] = settings.value("pppRefCrdY").toDouble();
-    xyzRef[2] = settings.value("pppRefCrdZ").toDouble();
-    _xyzAverage[3]+=(x()-xyzRef[0]);
-    _xyzAverage[4]+=(y()-xyzRef[1]);
-    _xyzAverage[5]+=(z()-xyzRef[2]);
-    _xyzAverageSqr[3]+=((x()-xyzRef[0])*(x()-xyzRef[0]));
-    _xyzAverageSqr[4]+=((y()-xyzRef[1])*(y()-xyzRef[1]));
-    _xyzAverageSqr[5]+=((z()-xyzRef[2])*(z()-xyzRef[2]));
-    }
-
+  if (settings.value("pppOrigin").toString() != "None"                  &&
+      settings.value("pppOrigin").toString() != "QuickStart - Mobile"   &&
+      settings.value("pppOrigin").toString() != "Plot - Start position" && 
+      settings.value("pppAverage").toString() != "") {
+
+    // Remember new position
+    // --------------------- 
     pppPos* newPos = new pppPos;
-    newPos->time   = epoData->tt;
-    newPos->xyz[0] = x();
-    newPos->xyz[1] = y();
-    newPos->xyz[2] = z();
+    newPos->time      = epoData->tt;
+    newPos->xyz[0]    = x();
+    newPos->xyz[1]    = y();
+    newPos->xyz[2]    = z();
+    newPos->xyzRef[0] = settings.value("pppRefCrdX").toDouble();
+    newPos->xyzRef[1] = settings.value("pppRefCrdY").toDouble();
+    newPos->xyzRef[2] = settings.value("pppRefCrdZ").toDouble();
+
     _posAverage.push_back(newPos);
 
-    _xyzAverage[0]+=x();
-    _xyzAverage[1]+=y();
-    _xyzAverage[2]+=z();
-    _xyzAverageSqr[0]+=(x()*x());
-    _xyzAverageSqr[1]+=(y()*y());
-    _xyzAverageSqr[2]+=(z()*z());
+    // Time Span for Average Computation
+    // ---------------------------------
+    double tRangeAverage = settings.value("pppAverage").toDouble() * 60.;
+    if (tRangeAverage < 0) {
+      tRangeAverage = 0;
+    }
+    if (tRangeAverage > 86400) {
+      tRangeAverage = 86400;
+    }
+
+    // Compute the Mean
+    // ----------------
+    double meanX = 0.0;
+    double meanY = 0.0;
+    double meanZ = 0.0;
 
     QMutableVectorIterator<pppPos*> it(_posAverage);
     while (it.hasNext()) {
       pppPos* pp = it.next();
-      if ( (epoData->tt - pp->time) >= _tRangeAverage ) {
-        _xyzAverage[0]-=pp->xyz[0];
-        _xyzAverage[1]-=pp->xyz[1];
-        _xyzAverage[2]-=pp->xyz[2];
-        _xyzAverageSqr[0]-=(pp->xyz[0]*pp->xyz[0]);
-        _xyzAverageSqr[1]-=(pp->xyz[1]*pp->xyz[1]);
-        _xyzAverageSqr[2]-=(pp->xyz[2]*pp->xyz[2]);
-        _xyzAverage[3]-=(pp->xyz[0]-xyzRef[0]);
-        _xyzAverage[4]-=(pp->xyz[1]-xyzRef[1]);
-        _xyzAverage[5]-=(pp->xyz[2]-xyzRef[2]);
-        _xyzAverageSqr[3]-=((pp->xyz[0]-xyzRef[0])*(pp->xyz[0]-xyzRef[0]));
-        _xyzAverageSqr[4]-=((pp->xyz[1]-xyzRef[1])*(pp->xyz[1]-xyzRef[1]));
-        _xyzAverageSqr[5]-=((pp->xyz[2]-xyzRef[2])*(pp->xyz[2]-xyzRef[2]));
+      if ( (epoData->tt - pp->time) >= tRangeAverage ) {
         delete pp;
         it.remove();
       }
-    }
-    _xyzAverageN=_posAverage.size();
-    double AveX;
-    double AveY;
-    double AveZ;
-    double dAveX;
-    double dAveY;
-    double dAveZ;
-    if (_xyzAverageN>1) {
-      AveX= _xyzAverage[0]/_xyzAverageN;
-      AveY= _xyzAverage[1]/_xyzAverageN;
-      AveZ= _xyzAverage[2]/_xyzAverageN;
-      dAveX= sqrt((_xyzAverageSqr[0]-_xyzAverage[0]*_xyzAverage[0]/(_xyzAverageN))/(_xyzAverageN-1));
-      dAveY= sqrt((_xyzAverageSqr[1]-_xyzAverage[1]*_xyzAverage[1]/(_xyzAverageN))/(_xyzAverageN-1));
-      dAveZ= sqrt((_xyzAverageSqr[2]-_xyzAverage[2]*_xyzAverage[2]/(_xyzAverageN))/(_xyzAverageN-1));
-      strD << _staID.data() << "  AVE-XYZ " 
-           << epoData->tt.timestr(1) << " "
-           << setw(13) << setprecision(3) << AveX                  << " +- "
-           << setw(6)  << setprecision(3) << dAveX       << " "
-           << setw(14) << setprecision(3) << AveY                  << " +- "
-           << setw(6)  << setprecision(3) << dAveY       << " "
-           << setw(14) << setprecision(3) << AveZ                  << " +- "
-           << setw(6)  << setprecision(3) << dAveZ;
-      emit newMessage(QByteArray(strD.str().c_str()), true);
-    }
-    if (settings.value("pppOrigin").toString() == "X Y Z" && settings.value("pppAverage").toString() != "") {
-      double _xyz[3];
-      double ellRef[3];
-      double _dxyz[3];
-      double _neu[3];
-      double _dneu[3];
-      xyz2ell(xyzRef, ellRef);
-      _xyz[0]= _xyzAverage[3]/_xyzAverageN;
-      _xyz[1]= _xyzAverage[4]/_xyzAverageN;
-      _xyz[2]= _xyzAverage[5]/_xyzAverageN;
-      if (_xyzAverageN>1) {
-        _dxyz[0]= sqrt((_xyzAverageSqr[3]-_xyzAverage[3]*_xyzAverage[3]/(_xyzAverageN))/(_xyzAverageN-1));
-        _dxyz[1]= sqrt((_xyzAverageSqr[4]-_xyzAverage[4]*_xyzAverage[4]/(_xyzAverageN))/(_xyzAverageN-1));
-        _dxyz[2]= sqrt((_xyzAverageSqr[5]-_xyzAverage[5]*_xyzAverage[5]/(_xyzAverageN))/(_xyzAverageN-1));
-        xyz2neu(ellRef, _xyz, _neu);
-        xyz2neu(ellRef, _dxyz, _dneu);
-        _dneu[0]=sqrt(_dneu[0]*_dneu[0]);
-        _dneu[1]=sqrt(_dneu[1]*_dneu[1]);
-        _dneu[2]=sqrt(_dneu[2]*_dneu[2]);
-        strE << _staID.data() << "  AVE-NEU "  
-           << epoData->tt.timestr(1) << " "
-           << setw(8)  << setprecision(3) << _neu[0]                << " +- "
-           << setw(6)  << setprecision(3) << _dneu[0]               << " "
-           << setw(8)  << setprecision(3) << _neu[1]                << " +- "
-           << setw(6)  << setprecision(3) << _dneu[1]               << " "
-           << setw(8)  << setprecision(3) << _neu[2]                << " +- "
-           << setw(6)  << setprecision(3) << _dneu[2];
-        emit newMessage(QByteArray(strE.str().c_str()), true);
-      } 
-    }
-  }
-//Perlt Ende
-  
+      else {
+        meanX += pp->xyz[0] - pp->xyzRef[0];
+        meanY += pp->xyz[1] - pp->xyzRef[1];
+        meanZ += pp->xyz[2] - pp->xyzRef[2];
+      }
+    }
+
+    int nn = _posAverage.size();
+
+    meanX /= nn;
+    meanY /= nn;
+    meanZ /= nn;
+
+    // Compute the Deviation
+    // ---------------------
+    double stdX  = 0.0;
+    double stdY  = 0.0;
+    double stdZ  = 0.0;
+    QVectorIterator<pppPos*> it2(_posAverage);
+    while (it2.hasNext()) {
+      pppPos* pp = it2.next();
+      double dX = pp->xyz[0] - pp->xyzRef[0] - meanX;
+      double dY = pp->xyz[1] - pp->xyzRef[1] - meanY;
+      double dZ = pp->xyz[2] - pp->xyzRef[2] - meanZ;
+      stdX += dX * dX;
+      stdY += dY * dY;
+      stdZ += dZ * dZ;
+    }
+    
+    stdX = sqrt(stdX / nn);
+    stdY = sqrt(stdY / nn);
+    stdZ = sqrt(stdZ / nn);
+     
+    ostringstream strD; strD.setf(ios::fixed);
+    strD << _staID.data() << "  AVE-XYZ " 
+         << epoData->tt.timestr(1) << " "
+         << setw(13) << setprecision(3) << meanX  << " +- "
+         << setw(6)  << setprecision(3) << stdX   << " "
+         << setw(14) << setprecision(3) << meanY  << " +- "
+         << setw(6)  << setprecision(3) << stdY   << " "
+         << setw(14) << setprecision(3) << meanZ  << " +- "
+         << setw(6)  << setprecision(3) << stdZ;
+    emit newMessage(QByteArray(strD.str().c_str()), true);
+  }
 
   // NMEA Output
@@ -1058,5 +1051,4 @@
 }
 
-
 //// 
 //////////////////////////////////////////////////////////////////////////////
Index: trunk/BNC/bncmodel.h
===================================================================
--- trunk/BNC/bncmodel.h	(revision 2647)
+++ trunk/BNC/bncmodel.h	(revision 2648)
@@ -95,8 +95,11 @@
                 const ColumnVector& rRec);
 
+  QDateTime  _startTime;
+
   class pppPos {
    public:
     bncTime time;
     double  xyz[3];
+    double  xyzRef[3];
   };
 
@@ -116,13 +119,5 @@
   QMap<QString, double> _windUpTime;
   QMap<QString, double> _windUpSum;
-
-//Perlt Anfang
-  double           _tRangeAverage;
-  QVector<pppPos*> _posAverage;
-  double           _xyzAverage[6];
-  double           _xyzAverageSqr[6];
-  int              _xyzAverageN;
-//Perlt Ende 
-
+  QVector<pppPos*>      _posAverage;
 };
 
Index: trunk/BNC/bncwindow.cpp
===================================================================
--- trunk/BNC/bncwindow.cpp	(revision 2647)
+++ trunk/BNC/bncwindow.cpp	(revision 2648)
@@ -341,5 +341,5 @@
   _pppNMEALineEdit     = new QLineEdit(settings.value("nmeaFile").toString());
   _pppNMEAPortLineEdit = new QLineEdit(settings.value("nmeaPort").toString());
-  _pppSigCLineEdit  = new QLineEdit(settings.value("pppSigmaCode").toString());
+  _pppSigCLineEdit     = new QLineEdit(settings.value("pppSigmaCode").toString());
   _pppAverageLineEdit  = new QLineEdit(settings.value("pppAverage").toString());
   _pppRefCrdXLineEdit  = new QLineEdit(settings.value("pppRefCrdX").toString());
@@ -349,5 +349,5 @@
   _pppOriginComboBox = new QComboBox();
   _pppOriginComboBox->setEditable(false);
-  _pppOriginComboBox->addItems(QString("No plot,Start position,X Y Z").split(","));
+  _pppOriginComboBox->addItems(QString("None,Plot - Start position,Plot - X Y Z,QuickStart - Static,QuickStart - Mobile").split(","));
   int ij = _pppOriginComboBox->findText(settings.value("pppOrigin").toString());
   if (ij != -1) {
@@ -468,11 +468,11 @@
   _pppNMEALineEdit->setWhatsThis(tr("<p>Specify the full path to a file where PPP results are saved as NMEA messages.</p>"));
   _pppNMEAPortLineEdit->setWhatsThis(tr("<p>Specify an IP port number to output PPP results as NMEA messages through an IP port.</p>"));
-  _pppOriginComboBox->setWhatsThis(tr("<p>Select an origin for North/East/Up time series plots in the 'PPP Plot' tab. This option makes only sense for a stationary receiver.</p>"));
+  _pppOriginComboBox->setWhatsThis(tr("<p>Select an origin for a North/East/Up displacements time series plot in the 'PPP Plot' section or for operating BNC in QuickStart mode starting at a known position.</p><p> - 'Plot - Start position' will let BNC plot a time series referred to the very first determined set of coordinate components.</p><p> - 'Plot - X Y Z' will let BNC plot a time series referred to entered coordinate components XYZ.</p><p> - 'QuickStart - Static' allows to run BNC in QuickStart mode with observations from a stationary receiver located at position XYZ</p><p> - 'QuickStart - Mobile' also allows to run BNC in QuickStart mode. However, the receiver may leave its initial XYZ start position after staying there for two minutes.</p><p>Note that displacements time series plots make only sense for a stationary receiver.</p>"));
   _pppSigCLineEdit->setWhatsThis(tr("<p>Enter a sigma for your code observations in meters.</p><p>5.0 (default) is likely to be an appropriate choice.</p>"));
   _pppAverageLineEdit->setWhatsThis(tr("<p>Enter the length of a sliding time window in minutes. BNC will continuously output moving average positions computed from those individual positions obtained most recently throughout this period.</p><p>An empty option field (default) means that you don't wont BNC to output moving average positions.</p>"));
-  _pppRefCrdXLineEdit->setWhatsThis(tr("<p>You may enter reference coordinates of the receiver position if known. The time series plots shown in the 'PPP Plot' tab will then be referred to these values.</p>"));
-  _pppRefCrdYLineEdit->setWhatsThis(tr("<p>You may enter reference coordinates of the receiver position if known. The time series plots shown in the 'PPP Plot' tab will then be referred to these values.</p>"));
-  _pppRefCrdZLineEdit->setWhatsThis(tr("<p>You may enter reference coordinates of the receiver position if known. The time series plots shown in the 'PPP Plot' tab will then be referred to these values.</p>"));
-  _bncFigurePPP->setWhatsThis(tr("PPP time series of North (red), East (green) and Up (blue) coordinate components are shown in the 'PPP Plot' tab when a 'Plot origin' PPP option is applied. Values are either referred to reference coordinates (if specified) or referred to the first estimated set of coordinate compoments. The sliding PPP time series window covers the period of the latest 5 minutes."));
+  _pppRefCrdXLineEdit->setWhatsThis(tr("<p>Enter reference coordinate X of the receiver's position.</p>"));
+  _pppRefCrdYLineEdit->setWhatsThis(tr("<p>Enter reference coordinate Y of the receiver's position.</p>"));
+  _pppRefCrdZLineEdit->setWhatsThis(tr("<p>Enter reference coordinate Z of the receiver's position.</p>"));
+  _bncFigurePPP->setWhatsThis(tr("PPP time series of North (red), East (green) and Up (blue) coordinate components are shown in the 'PPP Plot' tab when a appropriate option is applied via 'Origin'. Values are either referred to reference coordinates (if specified) or referred to the first estimated set of coordinate compoments. The sliding PPP time series window covers the period of the latest 5 minutes."));
 
   // Canvas with Editable Fields
@@ -714,5 +714,4 @@
   _pppRefCrdZLineEdit->setMaximumWidth(14*ww);
   _pppNMEAPortLineEdit->setMaximumWidth(14*ww);
-  _pppOriginComboBox->setMaximumWidth(14*ww);
   _pppSPPComboBox->setMaximumWidth(8*ww);
   pppLayout->setColumnMinimumWidth(0,14*ww);
@@ -734,11 +733,11 @@
   pppLayout->addWidget(_pppAverageLineEdit,                  2, 4);
   pppLayout->addWidget(new QLabel("Averaging"),              2, 4, Qt::AlignRight);  
-  pppLayout->addWidget(new QLabel("Plot origin"),            3, 0);
+  pppLayout->addWidget(new QLabel("Origin"),                 3, 0);
   pppLayout->addWidget(_pppOriginComboBox,                   3, 1, 1, 2);
-  pppLayout->addWidget(new QLabel("  "),                     3, 3);
+  pppLayout->addWidget(new QLabel(" X"),                     3, 3, Qt::AlignRight);
   pppLayout->addWidget(_pppRefCrdXLineEdit,                  3, 4);
-  pppLayout->addWidget(new QLabel("  "),                     3, 5);
+  pppLayout->addWidget(new QLabel(" Y"),                     3, 5, Qt::AlignRight);
   pppLayout->addWidget(_pppRefCrdYLineEdit,                  3, 6); 
-  pppLayout->addWidget(new QLabel("  "),                     3, 7);
+  pppLayout->addWidget(new QLabel(" Z"),                     3, 7, Qt::AlignRight);
   pppLayout->addWidget(_pppRefCrdZLineEdit,                  3, 8);
   pppLayout->addWidget(new QLabel("NMEA File (full path)"),  4, 0); 
@@ -1300,5 +1299,6 @@
         connect(thread, SIGNAL(newLatency(QByteArray, double)),
                 _bncFigureLate, SLOT(slotNewLatency(QByteArray, double)));
-        if (settings.value("pppOrigin").toString() != "No plot") {
+        if (settings.value("pppOrigin").toString() != "None"  &&
+            settings.value("pppOrigin").toString() != "QuickStart - Mobile") {
           disconnect(thread, 
                      SIGNAL(newPosition(bncTime, double, double, double)),
@@ -1629,5 +1629,7 @@
       _pppGLONASSCheckBox->setEnabled(true);
       _pppOriginComboBox->setEnabled(true);
-      if (_pppOriginComboBox->currentText() == "X Y Z" ) {
+      if (_pppOriginComboBox->currentText() == "Plot - X Y Z" || 
+          _pppOriginComboBox->currentText() == "QuickStart - Static" || 
+          _pppOriginComboBox->currentText() == "QuickStart - Mobile" ) {
         _pppRefCrdXLineEdit->setPalette(palette_white);
         _pppRefCrdXLineEdit->setEnabled(true);
@@ -1645,5 +1647,7 @@
         _pppRefCrdZLineEdit->setEnabled(false);
       }
-      if (_pppOriginComboBox->currentText() != "No plot" ) {
+      if (_pppOriginComboBox->currentText() != "None" &&
+          _pppOriginComboBox->currentText() != "Plot - Start position" && 
+          _pppOriginComboBox->currentText() != "QuickStart - Mobile" ) {
         _pppAverageLineEdit->setPalette(palette_white);
         _pppAverageLineEdit->setEnabled(true);
