diff --git a/lib/daemon.py b/lib/daemon.py
index ba5f17504134e6148e22506cf9ec85a74bd1a179..302097a19a518c60921e35560d7709c4fedab521 100644
--- a/lib/daemon.py
+++ b/lib/daemon.py
@@ -491,8 +491,8 @@ class Mainloop(object):
 def _VerifyDaemonUser(daemon_name):
   """Verifies the process uid matches the configured uid.
 
-  This method verifies that a daemon is started as the user it is intended to be
-  run
+  This method verifies that a daemon is started as the user it is
+  intended to be run
 
   @param daemon_name: The name of daemon to be started
   @return: A tuple with the first item indicating success or not,
@@ -512,6 +512,33 @@ def _VerifyDaemonUser(daemon_name):
           daemon_uids[daemon_name])
 
 
+def _BeautifyError(err):
+  """Try to format an error better.
+
+  Since we're dealing with daemon startup errors, in many cases this
+  will be due to socket error and such, so we try to format these cases better.
+
+  @param err: an exception object
+  @rtype: string
+  @return: the formatted error description
+
+  """
+  try:
+    if isinstance(err, socket.error):
+      return "Socket-related error: %s (errno=%s)" % (err.args[1], err.args[0])
+    elif isinstance(err, EnvironmentError):
+      if err.filename is None:
+        return "%s (errno=%s)" % (err.strerror, err.errno)
+      else:
+        return "%s (file %s) (errno=%s)" % (err.strerror, err.filename,
+                                            err.errno)
+    else:
+      return str(err)
+  except Exception: # pylint: disable-msg=W0703
+    logging.exception("Error while handling existing error %s", err)
+    return "%s" % str(err)
+
+
 def GenericMain(daemon_name, optionparser,
                 check_fn, prepare_fn, exec_fn,
                 multithreaded=False, console_logging=False,
@@ -645,7 +672,7 @@ def GenericMain(daemon_name, optionparser,
       logging.info("%s daemon startup", daemon_name)
     except Exception, err:
       if wpipe is not None:
-        os.write(wpipe, str(err))
+        os.write(wpipe, _BeautifyError(err))
       raise
 
     if wpipe is not None: