Hi, The problem seems to stem from the way the hurd treats fstat calls on local socket file descriptors. They all have the uid of 0 (root), while emacsclient can be run by other users. After trying to teach the hurd's local socket server to use the uid of the user who requested the socket and failing, I created the naive patch below that fixes the problem. Please let me know if there's a better solution. I git blamed the changes that led to this issue and I don't understand the race condition the uid comparison is supposed prevent. Andrew Eggenberger diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c index 871fa7a8d3..6059993ff6 100644 --- a/lib-src/emacsclient.c +++ b/lib-src/emacsclient.c @@ -1480,8 +1480,13 @@ set_local_socket (char const *server_name) sock_status = errno; else if (connect_stat.st_uid == uid) return s; +#ifdef __GNU__ + else + return s; +#else else sock_status = -1; +#endif CLOSE_SOCKET (s); }