---- a/src/err.hpp 2012-10-25 02:30:40.000000000 -0600
-+++ b/src/err.hpp 2013-01-21 10:56:25.095010874 -0700
-@@ -152,4 +152,10 @@
-
- #endif
-
-+// Conditionally check for EPROTO; some platforms (OpenBSD) don't support it.
-+#ifdef EPROTO
-+#define OR_ERRNO_EQ_EPROTO || errno == EPROTO
-+#else
-+#define OR_ERRNO_EQ_EPROTO
-+#endif
-
-diff -ur zeromq-3.2.2.orig/src/ipc_listener.cpp zeromq-3.2.2/src/ipc_listener.cpp
---- zeromq-3.2.2.orig/src/ipc_listener.cpp 2012-11-23 00:54:28.000000000 -0700
-+++ zeromq-3.2.2/src/ipc_listener.cpp 2013-01-21 10:57:02.670355121 -0700
-@@ -196,7 +196,7 @@
- fd_t sock = ::accept (s, NULL, NULL);
- if (sock == -1) {
- errno_assert (errno == EAGAIN || errno == EWOULDBLOCK ||
-- errno == EINTR || errno == ECONNABORTED || errno == EPROTO ||
-+ errno == EINTR || errno == ECONNABORTED OR_ERRNO_EQ_EPROTO ||
- errno == ENFILE);
- return retired_fd;
- }
-diff -ur zeromq-3.2.2.orig/src/tcp_listener.cpp zeromq-3.2.2/src/tcp_listener.cpp
---- zeromq-3.2.2.orig/src/tcp_listener.cpp 2012-11-23 00:54:28.000000000 -0700
-+++ zeromq-3.2.2/src/tcp_listener.cpp 2013-01-21 10:56:48.884173113 -0700
-@@ -262,7 +262,7 @@
- #else
- if (sock == -1) {
- errno_assert (errno == EAGAIN || errno == EWOULDBLOCK ||
-- errno == EINTR || errno == ECONNABORTED || errno == EPROTO ||
-+ errno == EINTR || errno == ECONNABORTED OR_ERRNO_EQ_EPROTO ||
- errno == ENOBUFS || errno == ENOMEM || errno == EMFILE ||
- errno == ENFILE);
- return retired_fd;