Index: trunk/BNC/combination/bnccomb.cpp
===================================================================
--- trunk/BNC/combination/bnccomb.cpp	(revision 3587)
+++ trunk/BNC/combination/bnccomb.cpp	(revision 3588)
@@ -262,4 +262,9 @@
     _buffer.remove(epoTime);
   }
+  QMapIterator<QString, cmbCorr*> itOrbCorr(_orbitCorrs);
+  while (itOrbCorr.hasNext()) {
+    itOrbCorr.next();
+    delete itOrbCorr.value();
+  }
 }
 
@@ -302,4 +307,14 @@
   }
 
+  // Save Orbit-Only Corrections
+  // ---------------------------
+  if (newCorr->raoSet && !newCorr->dClkSet) {
+    QString corrID = newCorr->ID();
+    if (_orbitCorrs.find(corrID) != _orbitCorrs.end()) {
+      delete _orbitCorrs[corrID];
+    }
+    _orbitCorrs[corrID] = new cmbCorr(*newCorr);
+  }
+
   // Check Modulo Time
   // -----------------
@@ -314,4 +329,13 @@
     delete newCorr;
     return;
+  }
+
+  // Merge with saved orbit correction
+  // ---------------------------------
+  if (newCorr->dClkSet && !newCorr->raoSet) {
+    QString corrID = newCorr->ID();
+    if (_orbitCorrs.find(corrID) != _orbitCorrs.end()) {
+      mergeOrbitCorr(_orbitCorrs[corrID], newCorr);
+    }
   }
 
@@ -362,6 +386,7 @@
   }
   if (existingCorr) {
-    delete newCorr;
+    delete newCorr; newCorr = 0;
     existingCorr->readLine(line); // merge (multiple messages)
+   
   }
   else {
@@ -1119,2 +1144,10 @@
   return success;
 }
+
+// 
+////////////////////////////////////////////////////////////////////////////
+t_irc bncComb::mergeOrbitCorr(const cmbCorr* orbitCorr, cmbCorr* clkCorr) {
+
+
+  return success;
+}
Index: trunk/BNC/combination/bnccomb.h
===================================================================
--- trunk/BNC/combination/bnccomb.h	(revision 3587)
+++ trunk/BNC/combination/bnccomb.h	(revision 3588)
@@ -62,4 +62,5 @@
     QString      acName;
     ColumnVector diffRao;
+    QString ID() {return acName + "_" + prn;}
   };
 
@@ -92,4 +93,6 @@
   QVector<cmbCorr*>& corrs() {return _buffer[_resTime].corrs;}
 
+  t_irc mergeOrbitCorr(const cmbCorr* orbitCorr, cmbCorr* clkCorr);
+
   QList<cmbAC*>           _ACs;
   bncTime                 _resTime;
@@ -105,4 +108,5 @@
   e_method                _method;
   bool                    _useGlonass;
+  QMap<QString, cmbCorr*> _orbitCorrs;
 };
 
