Index: branches/BNC_2.12/src/bnccore.cpp
===================================================================
--- branches/BNC_2.12/src/bnccore.cpp	(revision 7994)
+++ branches/BNC_2.12/src/bnccore.cpp	(revision 8000)
@@ -259,4 +259,17 @@
 
   bncSettings settings;
+    QStringList comments;
+
+  QListIterator<QString> it(settings.value("mountPoints").toStringList());
+  while (it.hasNext()) {
+    QStringList hlp = it.next().split(" ");
+    if (hlp.size() < 7)
+      continue;
+    QUrl url(hlp[0]);
+    QString decoder = hlp[1];
+    comments.append("Source: " + decoder +
+                    " " + url.encodedHost() +
+                    "/" + url.path().mid(1).toAscii());
+  }
 
   // Initialization
@@ -384,4 +397,9 @@
                        << "PGM / RUN BY / DATE" << endl;
 
+        QStringListIterator it(comments);
+        while (it.hasNext()) {
+          *_ephStreamGPS << it.next().trimmed().left(60).leftJustified(60) << "COMMENT\n";
+        }
+        
         line.sprintf("%60sEND OF HEADER\n", "");
         *_ephStreamGPS << line;
@@ -406,4 +424,9 @@
                        << "PGM / RUN BY / DATE" << endl;
 
+        QStringListIterator it(comments);
+        while (it.hasNext()) {
+          *_ephStreamGPS << it.next().trimmed().left(60).leftJustified(60) << "COMMENT\n";
+        }
+        
         line.sprintf("%60sEND OF HEADER\n", "");
         *_ephStreamGPS << line;
@@ -422,4 +445,9 @@
                            << hlp.toAscii().data()
                            << "PGM / RUN BY / DATE" << endl;
+
+        QStringListIterator it(comments);
+        while (it.hasNext()) {
+          *_ephStreamGlonass << it.next().trimmed().left(60).leftJustified(60) << "COMMENT\n";
+        }
 
         line.sprintf("%60sEND OF HEADER\n", "");
Index: branches/BNC_2.12/src/rinex/reqcedit.cpp
===================================================================
--- branches/BNC_2.12/src/rinex/reqcedit.cpp	(revision 7994)
+++ branches/BNC_2.12/src/rinex/reqcedit.cpp	(revision 8000)
@@ -533,5 +533,24 @@
     return;
   }
-
+  
+  // Concatenate all comments
+  // ------------------------
+  QStringList comments;
+  bncSettings settings;
+  QString comment = settings.value("reqcComment").toString();
+  if (!comment.isEmpty()) {
+    comments.append(comment);
+  }
+  QStringListIterator it(_navFileNames);
+  while (it.hasNext()) {
+    QString fileName = it.next();
+    t_rnxNavFile rnxNavFile(fileName, t_rnxNavFile::input);
+    QStringListIterator itCmnt(rnxNavFile.comments());
+    while (itCmnt.hasNext()) {
+      comments.append(itCmnt.next());
+    }
+  }
+  comments.removeDuplicates();
+  
   // Read Ephemerides
   // ----------------
@@ -565,5 +584,4 @@
   }
 
-  bncSettings settings;
   QMap<QString, QString> txtMap;
   QString runBy = settings.value("reqcRunBy").toString();
@@ -571,7 +589,6 @@
     txtMap["RUN BY"]  = runBy;
   }
-  QString comment = settings.value("reqcComment").toString();
-  if (!comment.isEmpty()) {
-    txtMap["COMMENT"]  = comment;
+  if (!comments.isEmpty()) {
+    txtMap["COMMENT"]  = comments.join("\\n");
   }
 
Index: branches/BNC_2.12/src/rinex/rnxnavfile.cpp
===================================================================
--- branches/BNC_2.12/src/rinex/rnxnavfile.cpp	(revision 7994)
+++ branches/BNC_2.12/src/rinex/rnxnavfile.cpp	(revision 8000)
@@ -79,4 +79,7 @@
         _glonass = true;
       }
+    }
+    else if (key == "COMMENT") {
+      _comments.append(value.trimmed());
     }
   }
Index: branches/BNC_2.12/src/rinex/rnxnavfile.h
===================================================================
--- branches/BNC_2.12/src/rinex/rnxnavfile.h	(revision 7994)
+++ branches/BNC_2.12/src/rinex/rnxnavfile.h	(revision 8000)
@@ -50,4 +50,5 @@
     double _version;
     bool   _glonass;
+    QStringList _comments;
   };
  
@@ -60,4 +61,5 @@
   void   setVersion(double version) {_header._version = version;}
   bool   glonass() const {return _header._glonass;}
+  QStringList comments() const {return _header._comments;}
   void   setGlonass(bool glo) {_header._glonass = glo;} 
   void   writeHeader(const QMap<QString, QString>* txtMap = 0);
