Index: /trunk/FACT++/src/datalogger.cc
===================================================================
--- /trunk/FACT++/src/datalogger.cc	(revision 11620)
+++ /trunk/FACT++/src/datalogger.cc	(revision 11621)
@@ -363,4 +363,6 @@
     ///Remove all the services associated with a given server
     void RemoveAllServices(const string&);
+    ///pointer to the dim's subscription that should distribute the run numbers.
+    DimInfo* fRunNumberService;
     /***************************************************
      * Overwritten from MessageImp
@@ -501,4 +503,7 @@
     list[service].service = service;
     fNumSubAndFitsData.numSubscriptions++;
+    //check if this is the run numbers service
+    if ((server == "FAD_CONTROL") && (service == "START_RUN"))
+        fRunNumberService = list[service].dimInfo.get();
     if (fDebugIsOn)
         Debug("Added subscription to " + server + "/" + service);
@@ -529,4 +534,8 @@
     }
     fNumSubAndFitsData.numSubscriptions--;
+
+    if ((server == "FAD_CONTROL") && (service == "START_RUN"))
+        fRunNumberService = NULL;
+
     if (fDebugIsOn)
     {
@@ -544,4 +553,5 @@
     fServiceSubscriptions[server].clear();
     fServiceSubscriptions.erase(server);
+    fRunNumberService = NULL;
     if (fDebugIsOn)
     {
@@ -921,4 +931,6 @@
      NotifyOpenedFile("", 0, fOpenedNightlyFiles);
      NotifyOpenedFile("", 0, fOpenedRunFiles);
+
+     fRunNumberService = NULL;
 
      if(fDebugIsOn)
@@ -1167,9 +1179,8 @@
 void DataLogger::CheckForRunNumber(DimInfo* I)
 {
-    if (strstr(I->getName(), "SET_RUN_NUMBER") != NULL)
-    {//assumes that the run number is an integer
-        //check if some run number entries can be deleted leave one so that two remain after adding the new one
-        AddNewRunNumber(I->getLonglong(), Time(I->getTimestamp(), I->getTimestampMillisecs()*1000));
-    }
+    if (I != fRunNumberService)
+        return;
+
+    AddNewRunNumber(I->getLonglong(), Time(I->getTimestamp(), I->getTimestampMillisecs()*1000));
 }
 
