diff --git a/src/pkg/net/ipsock_posix.go b/src/pkg/net/ipsock_posix.go
index 4da18a5..4841057 100644
--- a/src/pkg/net/ipsock_posix.go
+++ b/src/pkg/net/ipsock_posix.go
@@ -105,21 +105,20 @@
 }
 
 func internetSocket(net string, laddr, raddr sockaddr, sotype, proto int, mode string, toAddr func(syscall.Sockaddr) Addr) (fd *netFD, err error) {
-	var oserr error
 	var la, ra syscall.Sockaddr
 	family := favoriteAddrFamily(net, laddr, raddr, mode)
 	if laddr != nil {
-		if la, oserr = laddr.sockaddr(family); oserr != nil {
+		if la, err = laddr.sockaddr(family); err != nil {
 			goto Error
 		}
 	}
 	if raddr != nil {
-		if ra, oserr = raddr.sockaddr(family); oserr != nil {
+		if ra, err = raddr.sockaddr(family); err != nil {
 			goto Error
 		}
 	}
-	fd, oserr = socket(net, family, sotype, proto, la, ra, toAddr)
-	if oserr != nil {
+	fd, err = socket(net, family, sotype, proto, la, ra, toAddr)
+	if err != nil {
 		goto Error
 	}
 	return fd, nil
@@ -129,7 +128,7 @@
 	if mode == "listen" {
 		addr = laddr
 	}
-	return nil, &OpError{mode, net, addr, oserr}
+	return nil, &OpError{mode, net, addr, err}
 }
 
 func ipToSockaddr(family int, ip IP, port int) (syscall.Sockaddr, error) {
diff --git a/src/pkg/net/unixsock_posix.go b/src/pkg/net/unixsock_posix.go
index 238cefe..3a94cf5 100644
--- a/src/pkg/net/unixsock_posix.go
+++ b/src/pkg/net/unixsock_posix.go
@@ -59,8 +59,8 @@
 		f = sockaddrToUnixpacket
 	}
 
-	fd, oserr := socket(net, syscall.AF_UNIX, sotype, 0, la, ra, f)
-	if oserr != nil {
+	fd, err = socket(net, syscall.AF_UNIX, sotype, 0, la, ra, f)
+	if err != nil {
 		goto Error
 	}
 	return fd, nil
@@ -70,7 +70,7 @@
 	if mode == "listen" {
 		addr = laddr
 	}
-	return nil, &OpError{Op: mode, Net: net, Addr: addr, Err: oserr}
+	return nil, &OpError{Op: mode, Net: net, Addr: addr, Err: err}
 }
 
 func sockaddrToUnix(sa syscall.Sockaddr) Addr {
