diff --git a/close.go b/close.go
index eab49a8f4878228138fe75db29cf8193cc351cbb..1e13ca733ecbd270a7a6c0e23eb7fe0f1a4eb9f4 100644
--- a/close.go
+++ b/close.go
@@ -119,15 +119,13 @@ func (c *Conn) closeHandshake(code StatusCode, reason string) (err error) {
 	return nil
 }
 
-var errAlreadyWroteClose = errors.New("already wrote close")
-
 func (c *Conn) writeClose(code StatusCode, reason string) error {
 	c.closeMu.Lock()
 	wroteClose := c.wroteClose
 	c.wroteClose = true
 	c.closeMu.Unlock()
 	if wroteClose {
-		return errAlreadyWroteClose
+		return errClosed
 	}
 
 	ce := CloseError{
diff --git a/close_go113.go b/close_go113.go
new file mode 100644
index 0000000000000000000000000000000000000000..4f586dcb6856132f3e9e676c5967ecf43e13ad03
--- /dev/null
+++ b/close_go113.go
@@ -0,0 +1,9 @@
+// +build !go1.16
+
+package websocket
+
+import (
+	"errors"
+)
+
+var errClosed = errors.New("use of closed network connection")
diff --git a/close_go116.go b/close_go116.go
new file mode 100644
index 0000000000000000000000000000000000000000..0a6e5f15a625893d9cac6f2edfdaec87c9c2de2f
--- /dev/null
+++ b/close_go116.go
@@ -0,0 +1,9 @@
+// +build go1.16
+
+package websocket
+
+import (
+	"net"
+)
+
+var errClosed = net.ErrClosed