diff --git a/src/pkg/syscall/syscall_bsd.go b/src/pkg/syscall/syscall_bsd.go
index 36fba9e06ff877407dc0a4d60c8bc6715c22e565..26eb196af9586d3a084f386f85e7ad40d4589fb4 100644
--- a/src/pkg/syscall/syscall_bsd.go
+++ b/src/pkg/syscall/syscall_bsd.go
@@ -13,6 +13,7 @@
 package syscall
 
 import (
+	"runtime"
 	"unsafe"
 )
 
@@ -303,7 +304,7 @@ func Accept(fd int) (nfd int, sa Sockaddr, err error) {
 	if err != nil {
 		return
 	}
-	if len == 0 {
+	if runtime.GOOS == "darwin" && len == 0 {
 		// Accepted socket has no address.
 		// This is likely due to a bug in xnu kernels,
 		// where instead of ECONNABORTED error socket