Index: /trunk/FACT++/src/DimServiceInfoList.cc
===================================================================
--- /trunk/FACT++/src/DimServiceInfoList.cc	(revision 11712)
+++ /trunk/FACT++/src/DimServiceInfoList.cc	(revision 11713)
@@ -148,7 +148,11 @@
 void DimServiceInfoList::RemoveAllServers()
 {
-    for (ServiceInfoList::iterator i=fServiceInfoList.begin();
-         i!=fServiceInfoList.end(); i++)
-        RemoveServer(i->first);
+    while (fServiceInfoList.size()>0)
+    {
+        // We need to make a copy, otherwise RemoveServer will
+        // destroy the staring the reference is pointing to
+        const string name = fServiceInfoList.begin()->first;
+        RemoveServer(name);
+    }
 }
 
@@ -231,4 +235,6 @@
                     stringstream err;
                     err << "Service '" << server << "/" << name << "' not in list as it ought to be.";
+                    // Seems to happen why more than one client is subscribed
+                    // and e.g. the datalogger is immediately quit
                     throw runtime_error(err.str());
                 }
