Index: src/Fragmentation/Automation/Operations/AsyncOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/AsyncOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/AsyncOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -53,5 +53,4 @@
   {
     // An error occurred.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
     callback_on_failure();
Index: src/Fragmentation/Automation/Operations/Controllers/CheckResultsOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Controllers/CheckResultsOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Controllers/CheckResultsOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -60,6 +60,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -84,6 +84,6 @@
   {
     // An error occurred.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Controllers/GetNextJobIdOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Controllers/GetNextJobIdOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Controllers/GetNextJobIdOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -62,4 +62,5 @@
     // exit.
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -85,4 +86,5 @@
     // An error occurred.
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -108,4 +110,5 @@
     // An error occurred.
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Controllers/ReceiveResultsOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Controllers/ReceiveResultsOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Controllers/ReceiveResultsOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -62,6 +62,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -86,6 +86,6 @@
   {
     // An error occurred.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Controllers/SendJobsOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Controllers/SendJobsOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Controllers/SendJobsOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -63,6 +63,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -88,6 +88,6 @@
   {
     // An error occurred.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 
Index: src/Fragmentation/Automation/Operations/Operation.hpp
===================================================================
--- src/Fragmentation/Automation/Operations/Operation.hpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Operation.hpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -34,5 +34,4 @@
   Operation(const std::string &_name, Connection &_connection) :
     connection_(_connection),
-    Exitflag(OkFlag),
     name(_name)
   {}
@@ -49,19 +48,5 @@
   virtual void operator()(const std::string& _host, const std::string& _service) = 0;
 
-  enum Exitflag_t {
-    OkFlag = 0,
-    ErrorFlag = 255
-  };
-
-  /** Getter for Exitflag.
-   *
-   * @return Exitflag
-   */
-  size_t getExitflag() const
-  {
-    return Exitflag;
-  }
-
-  /** Getter for name.
+ /** Getter for name.
    *
    * @return const reference to Operation::name.
@@ -75,7 +60,4 @@
   Connection &connection_;
 
-  // exit flag of this operation, derived classes may change it
-  enum Exitflag_t Exitflag;
-
 private:
   /// Name of this AsyncOperation (required for Registry pattern)
Index: src/Fragmentation/Automation/Operations/Servers/SendJobToWorkerOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Servers/SendJobToWorkerOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Servers/SendJobToWorkerOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -59,6 +59,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Servers/ShutdownWorkerOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Servers/ShutdownWorkerOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Servers/ShutdownWorkerOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -62,6 +62,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    Exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Workers/EnrollInPoolOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Workers/EnrollInPoolOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Workers/EnrollInPoolOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -57,4 +57,5 @@
     // exit.
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -80,4 +81,5 @@
     // exit.
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -101,4 +103,5 @@
     // exit.
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Workers/ObtainJobOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Workers/ObtainJobOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Workers/ObtainJobOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -57,4 +57,5 @@
     // exit.
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Workers/SubmitResultOperation.cpp
===================================================================
--- src/Fragmentation/Automation/Operations/Workers/SubmitResultOperation.cpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Workers/SubmitResultOperation.cpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -57,6 +57,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -79,6 +79,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
@@ -101,6 +101,6 @@
     // operation the io_service will run out of work to do and the client will
     // exit.
-    exitflag = ErrorFlag;
     ELOG(1, e.message());
+    AsyncOperation::handle_FinishOperation(e);
   }
 }
Index: src/Fragmentation/Automation/Operations/Workers/SubmitResultOperation.hpp
===================================================================
--- src/Fragmentation/Automation/Operations/Workers/SubmitResultOperation.hpp	(revision 9db22d3dcf243224ac36894c1c0683c009857077)
+++ src/Fragmentation/Automation/Operations/Workers/SubmitResultOperation.hpp	(revision d57585e6a2a4bac3922a30b0d4538287bd9d1987)
@@ -34,6 +34,5 @@
     AsyncOperation(std::string("submitresult"),_connection, _callback_on_success, _callback_on_failure),
     result( new FragmentResult(JobId::NoJob, std::string("EmptyResult")) ),
-    address(_address),
-    exitflag(OkFlag)
+    address(_address)
   {}
   /// Destructor for class SubmitResultOperation
@@ -48,18 +47,4 @@
     result.reset();
     result = _result;
-  }
-
-public:
-  enum {
-    OkFlag = 0,
-    ErrorFlag = 1
-  };
-
-  /** Returns the flag of the handled operation.
-   *
-   */
-  size_t getFlag() const
-  {
-    return exitflag;
   }
 
@@ -84,7 +69,4 @@
   //!> address for listener
   WorkerAddress address;
-
-  /// exit flag
-  size_t exitflag;
 };
 
