Index: trunk/FACT++/src/DimServiceInfoList.cc
===================================================================
--- trunk/FACT++/src/DimServiceInfoList.cc	(revision 12906)
+++ trunk/FACT++/src/DimServiceInfoList.cc	(revision 12907)
@@ -121,13 +121,15 @@
 void DimServiceInfoList::RemoveServer(const string s)
 {
+    RemoveAllServices(s);
+
     const ServiceInfoList::iterator v = fServiceInfoList.find(s);
     if (v==fServiceInfoList.end())
+        return;
+    /*
     {
         stringstream err;
         err << "DimServiceInfoList: Server '" << s << "' not in list as it ought to be.";
         throw runtime_error(err.str());
-    }
-
-    RemoveAllServices(s);
+    }*/
 
     // Remove the server from the server list
Index: trunk/FACT++/src/datalogger.cc
===================================================================
--- trunk/FACT++/src/datalogger.cc	(revision 12906)
+++ trunk/FACT++/src/datalogger.cc	(revision 12907)
@@ -471,5 +471,5 @@
     if (list.find(service) != list.end())
     {
-        Error("Service " + server + "/" + service + " is already in the dataLogger's list. ignoring its update.");
+        Error("Service " + server + "/" + service + " is already in the dataLogger's list... ignoring update.");
         return;
     }
@@ -502,6 +502,6 @@
     if (fServiceSubscriptions.find(server) == fServiceSubscriptions.end())
     {
-      Error("Server " + server + " not found while removing service " + service);
-      return;
+        Error("Request to remove service "+service+" from server "+server+", but service not found.");
+        return;
     }
 
@@ -532,13 +532,20 @@
 void DataLogger::RemoveAllServices(const string& server)
 {
+    if (fServiceSubscriptions.find(server)==fServiceSubscriptions.end())
+    {
+        Warn("Request to remove all services, but corresponding server " + server + " not found.");
+        return;
+    }
+
     fNumSubAndFitsData.numSubscriptions -= fServiceSubscriptions[server].size();
+
     fServiceSubscriptions[server].clear();
     fServiceSubscriptions.erase(server);
+
     if (server == "FAD_CONTROL")
         fRunNumberService = NULL;
+
     if (fDebugIsOn)
-    {
         Debug("Removed all subscriptions to " + server + "/");
-    }
 }
 
