Index: trunk/FACT++/src/DimErrorRedirecter.cc
===================================================================
--- trunk/FACT++/src/DimErrorRedirecter.cc	(revision 10510)
+++ trunk/FACT++/src/DimErrorRedirecter.cc	(revision 10511)
@@ -27,4 +27,5 @@
 
     DimClient::addErrorHandler(this);
+    DimServer::addExitHandler(this);
 }
 
@@ -32,20 +33,27 @@
 {
     DimClient::addErrorHandler(0);
+    DimServer::addExitHandler(0);
 }
 
 void DimErrorRedirecter::errorHandler(int severity, int code, char *msg)
 {
+    static const string id = "DIM|";
+
     switch (severity)
     {
-    case DIM_FATAL:   fMsg.Error(msg); return;
-    case DIM_ERROR:   fMsg.Error(msg); return;
-    case DIM_WARNING: fMsg.Warn(msg);  return;
-    case DIM_INFO:    fMsg.Info(msg);  return;
+    case DIM_FATAL:   fMsg.Error(id+msg); break;
+    case DIM_ERROR:   fMsg.Error(id+msg); break;
+    case DIM_WARNING: fMsg.Warn(id+msg);  break;
+    case DIM_INFO:    fMsg.Info(id+msg);  break;
+    default:
+        stringstream str;
+        str << "DIM message with unknown severity (" << severity << "): ";
+        str << msg << " (" << code << ")";
+        fMsg.Message(str);
+        break;
     }
 
-    stringstream str;
-    str << "Severity of Dim message unknown(" << severity << "): ";
-    str << msg << "(" << code << ")";
-    fMsg.Message(str);
+    if (severity==DIM_FATAL && code==DIMDNSDUPLC)
+        exitHandler(DIMDNSDUPLC);
 
     /*
Index: trunk/FACT++/src/DimErrorRedirecter.h
===================================================================
--- trunk/FACT++/src/DimErrorRedirecter.h	(revision 10510)
+++ trunk/FACT++/src/DimErrorRedirecter.h	(revision 10511)
@@ -2,9 +2,9 @@
 #define FACT_DimErrorRedirecter
 
-#include <dim.hxx>
+#include <dis.hxx>
 
 class MessageImp;
 
-class DimErrorRedirecter : public DimErrorHandler
+class DimErrorRedirecter : public DimErrorHandler, public DimExitHandler
 {
 private:
@@ -14,9 +14,9 @@
 
     void errorHandler(int severity, int code, char *msg);
+    void exitHandler(int code) { exit(code); }
 
 public:
     DimErrorRedirecter(MessageImp &imp);
     ~DimErrorRedirecter();
-
 };
 
