Index: ThirdParty/JobMarket/src/JobMarket/Operations/AsyncOperation.cpp
===================================================================
--- ThirdParty/JobMarket/src/JobMarket/Operations/AsyncOperation.cpp	(revision 89b42d90e27a2a1ce27f00801191d97c05beda08)
+++ ThirdParty/JobMarket/src/JobMarket/Operations/AsyncOperation.cpp	(revision 8e7a1b20697e82ca4bb86bb17239e4e2692bd22c)
@@ -33,5 +33,5 @@
 #include "CodePatterns/Log.hpp"
 
-void NoOp() {}
+static void NoOp() {}
 
 // static instances
@@ -48,4 +48,5 @@
   {
     LOG(1, "INFO: AsyncOperation completed.");
+    status = Operation::success;
     callback_on_success();
   }
@@ -54,4 +55,5 @@
     // An error occurred.
     ELOG(1, e.message());
+    status = Operation::error;
     callback_on_failure();
   }
@@ -76,15 +78,24 @@
   DEBUG_FUNCTION_ENTRYEXIT
 
+  status = Operation::running;
+
   // Resolve the host name into an IP address.
   boost::asio::ip::tcp::resolver resolver(connection_.socket().get_io_service());
   boost::asio::ip::tcp::resolver::query query(_host, _service);
+  boost::system::error_code ec;
   boost::asio::ip::tcp::resolver::iterator endpoint_iterator =
-    resolver.resolve(query);
-  boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
+    resolver.resolve(query, ec);
+  // check whether host could be resolved
+  if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator()) {
+    boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
 
-  // Start an asynchronous connect operation.
-  LOG(3, "DEBUG: Connecting asynchronously to endpoint " << endpoint << " ...");
-  connection_.socket().async_connect(endpoint,
-    boost::bind(&AsyncOperation::handle_connect, this,
-      boost::asio::placeholders::error, ++endpoint_iterator));
+    // Start an asynchronous connect operation.
+    LOG(3, "DEBUG: Connecting asynchronously to endpoint " << endpoint << " ...");
+    connection_.socket().async_connect(endpoint,
+      boost::bind(&AsyncOperation::handle_connect, this,
+        boost::asio::placeholders::error, ++endpoint_iterator));
+  } else {
+    // this will allow to still listen on the socket for other connections
+    handle_FinishOperation(ec);
+  }
 }
Index: ThirdParty/JobMarket/src/JobMarket/Operations/Operation.hpp
===================================================================
--- ThirdParty/JobMarket/src/JobMarket/Operations/Operation.hpp	(revision 89b42d90e27a2a1ce27f00801191d97c05beda08)
+++ ThirdParty/JobMarket/src/JobMarket/Operations/Operation.hpp	(revision 8e7a1b20697e82ca4bb86bb17239e4e2692bd22c)
@@ -34,4 +34,5 @@
   Operation(const std::string &_name, Connection &_connection) :
     connection_(_connection),
+    status(not_started),
     name(_name)
   {}
@@ -56,10 +57,29 @@
   }
 
+  //!> enumeration of status codes of the operation
+  enum StatusCodes {
+    not_started,
+    running,
+    error,
+    success
+  };
+
+  /** Returns the current status of the operation.
+   *
+   * \return status code
+   */
+  enum StatusCodes getStatus() const {
+    return status;
+  }
+
 protected:
-  /// The Connection to the server.
+  //!> The Connection to the server.
   Connection &connection_;
 
+  //!> current status of the operation
+  enum StatusCodes status;
+
 private:
-  /// Name of this AsyncOperation (required for Registry pattern)
+  //!> Name of this AsyncOperation (required for Registry pattern)
   std::string name;
 };
Index: ThirdParty/JobMarket/src/JobMarket/Operations/SyncOperation.cpp
===================================================================
--- ThirdParty/JobMarket/src/JobMarket/Operations/SyncOperation.cpp	(revision 89b42d90e27a2a1ce27f00801191d97c05beda08)
+++ ThirdParty/JobMarket/src/JobMarket/Operations/SyncOperation.cpp	(revision 8e7a1b20697e82ca4bb86bb17239e4e2692bd22c)
@@ -42,9 +42,14 @@
   boost::asio::ip::tcp::resolver::iterator endpoint_iterator =
     resolver.resolve(query);
-  boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
+  // check whether host could be resolved
+  if (endpoint_iterator != boost::asio::ip::tcp::resolver::iterator()) {
+    boost::asio::ip::tcp::endpoint endpoint = *endpoint_iterator;
 
-  // Start an asynchronous connect operation.
-  LOG(3, "DEBUG: Connecting synchronously to endpoint " << endpoint << " ...");
-  connection_.socket().connect(endpoint);
+    // Start an asynchronous connect operation.
+    LOG(3, "DEBUG: Connecting synchronously to endpoint " << endpoint << " ...");
+    connection_.socket().connect(endpoint);
+  } else {
+    status = Operation::error;
+  }
 }
 
@@ -67,4 +72,6 @@
   DEBUG_FUNCTION_ENTRYEXIT
 
+  status = Operation::running;
+
   // connect
   connect(_host, _service);
@@ -75,3 +82,6 @@
   // disconnect
   disconnect();
+
+  if (status == Operation::running)
+    status = Operation::success;
 }
