diff --git a/src/session_impl.cpp b/src/session_impl.cpp index 68ef8f2af..e1d5719da 100755 --- a/src/session_impl.cpp +++ b/src/session_impl.cpp @@ -640,6 +640,15 @@ namespace aux { async_accept(listener); return; } +#endif +#ifdef TORRENT_BSD + // Leopard sometimes generates an "invalid argument" error. It seems to be + // non-fatal and we have to do another async_accept. + if (e.value() == EINVAL) + { + async_accept(listener); + return; + } #endif if (m_alerts.should_post(alert::fatal)) {